* 关于接口安全:
* ####################################################################################################
* 1、加密 【非对称加密 RSA ,对称加密 DES 3DES AES】 -- 不明文传数据,安全性会更高
* 对称加密和非对称加密区别: 1、对称加密速度快,安全性没有非对称加密安全
* 2、非对称加密安全性更高,但是效率没有对称加密快
* 3、非对称加密加密长度有限制,(密钥长度是1024,只能加密117个字符,需要分段
* 加密,分段解密)
* 接口如何实现非对称加密: DATA
*
* 1、首先生成一个公钥和私钥
* 【 在linux使用openssl命令生成公钥私钥 -- 公钥和私钥是唯一匹配的 】
* 【 先生成私钥,拿着私钥生成公钥 】
*
* 2、把公钥给客户端程序(h5),私钥留在服务端
*
* 3、在客户端调用服务端的时候,使用公钥进行加密 openssl_pubic_encrypt,把加密之后的字符串传到服务端
*
* 4、服务端接受到数据之后,拿私钥进行解密 openssl_private_decrypt
*
* 5、加密和加密的时候注意 把数组转换成json串
*
* ####################################################################################################
* 2、签名 --- 防止数据在传输的过程中被篡改 ( MD5函数 不可逆 )
*
* 1、指定签名算法,把传递给服务端的数据排序 【注意 不能字节使用sort , sort会改变键名】
*
* 2、把排序之后的数组转换成字符串(json_encode)
*
* 3、使用MD5 生成签名的字符串
*
* 4、把生成好的签名传递到服务端。###########客户端###########
*
* 5、服务端接受数据,进行解密
*
* 6、根据签名算法生成一个对应的签名
*
* 7、验证2个签名是否一致,不一致则说明数据传输的过程中被篡改
*
* ####################################################################################################
* # appid + app_secret 支付宝接口 微信公众号 -- 主要是用来验证客户端是否有调用接口的权限
* # app_id + app_secret 怎么来的? 支付宝和微信,都需要去申请,需要填写资质,在支付宝和微信平台申请的
*
* # 服务端生成一个appid和appsecret
* # 客户端拿到服务端生成的appid和appsecret
* 【正常情况下,需要提交资质,后台做审核,后台审核通过之后下发一个appid+appsecret】
*
* 3、鉴权 ( 再调用接口的时候验证客户端是否有权限调用接口 )
* md5('app_1') => md5('app_1_psd'),
*
*
*
*/
接口安全
最新推荐文章于 2024-07-20 09:00:00 发布