最近新开的支付和提现项目中对于安全要求比较高,就又看了一下之前做的支付项目的代码,看一下之前怎么做的对称加密,觉得还是不够好,就又网上搜资料,问大牛,然后总结了一下移动端这边需要做的加密和解密处理。
一,首先是移动端要做的加密,先由服务端生成一套公钥和私钥,然后把公钥发给移动端存在本地,移动端在本地取随机字符串使用公钥加密,我使用的是RSA这个第三方,如下
具体的意思就是公钥去解密这个key,然后key去解密我们的参数。详细的取值加密位数与服务端达成一致即可。我们使用的是逗号就是那个_DivStr把两个区分开,然后通过取值分部解密。需要注意的就是我们和服务端商定好的key的位数一定要统一,
像我们是取得32位的key。然后服务端发送过来的数据解密的时候,就使用逆向的操作
先根据逗号,把两个重要的数据取到,然后根据和服务端沟通好的,第二个字符串的前16位是一个key,我们要先把第二个字符串从第16位截开,然后进行分布通过存在本地的公钥解密,再取值返回,就完成了。具体的json转二进制,二进制转字符串就不一一列举。可以根据自己加密方式自行配置
网友评论