【原创】从零开始实现一个简单的加密API

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-8-30

[礼物]成品见文末,可直接白嫖

近期求助分区经常看到类似需求,所以干脆出一贴统一回复吧

为了通俗易懂,选择容易上手的php,主要是学习思路,会了后移植成其他语言都是没问题的

[彩虹]运行环境
mysql5.7+
php7.3+(配置记得打开pdo,不会自行百度)

首先先建立个简单的数据表,并添加测试数据【图一】
注意不要明文传输和储藏

然后开始写一个最简单的秘钥算法(教程我就不写非对称加密了,要嫌太简单可自行完善),可以插入注册逻辑中,mt_rand生成随机数,base64加密用户名(注册肯定要限制重复用户名,以此保障key唯一性)

[灯泡]算法参考【图二】(其实真正有用的就两行)

省略了添加数据库的部分,毕竟只是介绍算法,数据库操作就不赘述了,自己在用户注册时添加key字段即可

加密后效果图如【图三】

然后就到了接口逻辑了,新建一个api文件,内容如【图四】(如果模糊可以去文末源码地址)

简单来说就是匹配key(每个用户拥有唯一的key)找到用户,获取该用户当前余额,扣除单次调用费用,更新数据表即可

现在我们来浏览器模拟调用一下【图五】

调用成功,并且数据库得到更新【图六】

然后测试不加key,提示调用失败【图七】

至于显示余额什么的更简单了,输出下money变量即可

最后改进下,写成预处理语句,防止sql注入【图八】

[礼物]我将代码开源了,可直接【白嫖】

本帖含有隐藏内容,请您 回复 后查看


[灯泡]过于简陋,仅供参考,建议各位凯粉如果要用到实际项目上,先自己顺着思路完善一下,例如restful风格接收参数,(主要指对接到laravel,tp的项目),对于其他语言实现的后端,暂时只能你们自己实现咯

[彩虹]那么本文就到此结束啦,近期较忙,随缘上线,随缘发帖,还请见谅[茶杯]

[彩虹]pluie
[彩虹]2022-08-30

101楼
Pluie 2022-12-19
已经是接口了呀,不过这个仅供参考,因为有很多安全问题没处理,简单出个教程,不建议加入实际项目
102楼
小敏 2022-12-19
怎么让封装接口专输key密钥模式呢
103楼
Pluie 2022-12-19
这种相对稳定的秘钥一般是注册生成的,那你只需要在用户登录成功的时候从数据库字段中查找出结果返回即可,还是说你是想问如何在请求时带上秘钥?
104楼
小敏 2022-12-19
就是封装api接口,调用的时候带上密钥
就跟网络验证一样
105楼
Pluie 2022-12-19
哦,大概懂了,你用的名词不是很准确
106楼
Pluie 2022-12-19
哦,大概懂了,你用的名词不是很准确
107楼
小敏 2022-12-19
我也不明白
6 7 8 9 10 11

评论

登录后才可发表内容
  • 主题

    18

  • 帖子

    426

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.1179s Mem:2108Kb