美文网首页
第三方支付渠道加密算法

第三方支付渠道加密算法

作者: 联想桥南 | 来源:发表于2017-11-01 22:29 被阅读0次

    没有绝对的加密算法,实际工程上都是考虑到破解的成本即可。
    比如,破解你的一个漏洞,能获得10元的收益,但是需要花费大型机器运行1天,成本就划不来,没人愿意干这个事情。

    加密算法

    1. 非对称加密RSA
      解密基于大数因式分解成两个质数,位数越长越安全,1024位RSA密钥基本安全,2048位密钥及其安全。银行和支付宝使用此种加密算法
      http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html

    2. AES、DES 对称加密
      解密难度依赖位数,大型机已经可以破解128位,所以现在最低也要256的AES

    3. MD5 哈希算法的一种,算出的是一个固定长度的数字,算法是不可逆的,常用于密码存储,签名效验。是可破解的,虽然不可逆,但是目前可通过彩虹库(一个存储着前后映射关系的库7.6万亿条记录)暴力破解。
      工程上,采取加盐的方式,这样破解就需要先生成加盐后的“彩虹库”,大大增加了破解的成本和时间。
      我看微信支付的回调签名就是用的这种方式

    第三方支付渠道加密选择

    1. 支付宝
      RSA加密,两对公私钥对
      客户端保存公钥public1,私钥private2
      支付宝服务端保存私钥private1,公钥public2

    客户端请求的数据:公钥加密,私钥签名
    支付宝返回的数据:私钥解密,公钥验证签名

    (1)其中私用强烈推荐RSA2签名(SHA256)验签,极其安全
    支付宝支付签名规范

    1. 微信
      用的是对传输的数据字段,加盐md5生成签名字段,接收端去验证签名的方式,保证数据安全,没有去加密明文的参数数据。大致例子:
      签名=MD5(key1=value1&key2=value2&randomNum=?&key=?.......),其中:
      (1)Key1,key2等是参数,可以约定顺序和参与签名的字段
      (2)randomNum是每次请求生成的随机数,起到加盐的效果
      (3)key值是双方都知道的一个密钥,上传至微信服务端保存
      以上三点都是起到,增大破解难度的效果。
      微信支付安全规范

    总结:实际工程上,基本就是用上述两种方案,或者为了区分通用做法稍作修改,就满足需求。

    市面上各个充值渠道接入费率(截止201711)

    相关文章

      网友评论

          本文标题:第三方支付渠道加密算法

          本文链接:https://www.haomeiwen.com/subject/qbegpxtx.html