微信支付接口加密技术详解

6 篇文章 0 订阅
5 篇文章 1 订阅

登录不加密

明文 用户名+密码登录。

1、问题:用户密码等隐私泄露

解决:隐私信息加密

方案:RSA非对称加密:客户端用公钥对密码加密;服务器用私钥解密

 

2、问题:请求参数金额额被篡改

解决:MD5加密

方案:客户端将用户名和金额拼一个字符串然后用MD5加密生成字符串s1传给服务器;服务器用也将用户名和金额拼一个字符串生成加密后的字符串s2,判断前端s1是否等于s2,不想等说明被篡改。

 

3、问题:MD5可以暴力正向推算然后撞库

解决:再给MD5加盐

方案:客户端将用户名和金额和固定字符串盐值“aaa”拼一个字符串然后用MD5加密生成字符串s1传给服务器;服务器用也将用户名和金额和固定字符串盐值“aaa”拼一个字符串生成加密后的字符串s2,判断前端s1是否等于s2,不想等说明被篡改。

 

 

4、问题:黑客拦截了url路径和SESSIONID等所有请求信息,模拟重复发请求,重复支付

解决:SESSIONID改为SESSIONID+TOKEN。不可控制,TOKEN程序可以控制。token里面包含时间戳设置超时时间甚至一次失效

 

方案:

1、用户名+密码+时间戳 ,然后md5生成token。

2、将token放到redis设置超时时间(ex)

3、将token用RSA公钥加密返给客户端

4、客户端支付时将token传给服务器支付接口,我们在支付做个拦截,即拦截器

5、拦截器RSA解密token,然后做token的有效性校验,比如token在redis是否存在。

6、如果需要更高的安全性,token用一次失效,那就校验完将token从redis删除即可。

 

 

 

拦截器前置判断token有效性

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茅坑的小石头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值