前言
前段时间有个同行突然说,APP的接口能不能加密,token容易被人破解,让我想个办法,不让别人破解。我一阵搜索脑袋,发现这东西没做过,就对他说了一句我试试。作为一个程序员,面向百度编程,已成了必备技能。网上百度一下,主要有几种方式进行加密:
- php后端生成密钥发给开发人员,开发人员根据密钥,把参数加上进行md5加密,生成sign。后端拿到数据根据密钥也进行加密,比对sign。安全性较强
- token加密,这个加密方式已经太普遍了,只要拿到用户的token,就可以随便请求,安全性一般
- 通过对称加密算法,该加密算法对uid+网站公钥进行时效加密,在一定时效内可用。在会员登录成功时,服务器端对该ID加密后返回给客户端,客户端每次请求接口的时候带上该参数,服务器端通过解密认证。
综合起来还是第一种靠谱
用tp6中间件实现加密
主要分为两部分:
- 生成APP密钥,这个密钥可以是一串乱码,也可以是随机字符串。
- tp6中间件验证
生成密钥
这个可以看自己的想法来生成,只要不会重复,就不会出问题
public static function create_unique() {
$data = $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR'] //生成密钥
.time() . rand();