GET和POST AES加密验签,body加解密步骤

 

需求:根据name和age查询数据,需要验签(只讲逻辑)

 

  假设参数:?name=316314643131654&age=15&AppID=98233030&iv=9406238369428fe3c305c9195f4a6f5a&sign=xxxx


  1.首先获取get方式传入的参数,其中有固定的一个必传参数AppId,通过AppId去数据库中取出对应秘钥(secret,双方约定后,各自维护数据库中)


  2.获取参数中的name=316314643131654&age=15&AppID=98233030&iv=9406238369428fe3c305c9195f4a6f5a和秘钥(secret),按照字典排序也就是按首字母顺序进行排序(除sign),拼成一个字符串

      字典排序后:

       age=15AppID=98233030iv=9406238369428fe3c305c9195f4a6f5aname=316314643131654secret=abcdefg


  3.使用AES加密对这个字符串加密。 秘钥(secret)+iv(增加算法强度)+上一步生成的字符串(str),生成AES加密后的字符串

     AES加密后(AES加密代码,详见上篇文章):

 ce0529d70543b45a822fe609d85c14d124a9ad80215bbfd256bddfb3b7dd263f075eeff387f06bc275034d5309789b10470396734a7f14dd4b25b11701e27ba21a80ccc06ebf4829a71aeae5394d6810


  4.对AES加密后字符串MD5再次加密取32位,转大写,即sign

          MD5加密(MD5 加密后的位数一般是32 位。16 位实际上是从 32 位字符串中,取中间的第 9 位到第 24 位的部分)

          32 faaaeda81022b17edcb12b14efca5fd5

          16 1022b17edcb12b14

5.转大写,就是sign

 

服务端按照步骤同样生成sign,根据入参sign即可完成校验.

 

 

若请求是post:还需要body加密,AES对键值对或者json类型的数据加密。服务端获取到body后,解密获取参数。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值