简单了解下原理
https://blog.youkuaiyun.com/chenyong05314/article/details/102609133
未加密
加密
摘要哈希生成的正确姿势是什么样呢?分三步:
1.收集相关业务参数,在这里是金额和目标账户。当然,实际应用中的参数肯定比这多得多,这里只是做了简化。
2.按照规则,把参数名和参数值拼接成一个字符串,同时把给定的密钥也拼接起来。之所以需要密钥,是因为攻击者也可能获知拼接规则。
3.利用 MD5 算法,从原文生成哈希值。MD5 生成的哈希值是 128 位的二进制数,也就是 32 位的十六进制数。
第三方支付平台如何验证请求的签名?同样分三步:
1.发送方和请求方约定相同的字符串拼接规则,约定相同的密钥。
2.第三方平台接到支付请求,按规则拼接业务参数和密钥,利用 MD5 算法生成 Sign。
3.用第三方平台自己生成的 Sign 和请求发送过来的 Sign 做对比,如果两个 Sign 值一模一样,则签名无误,如果两个 Sign 值不同,则信息做了篡改。这个过程叫做验签。
应用
看需求,有的比较复杂。
参考
有的比较简单
以密码为例,这种方式前端传输加密过后的密码给后端,后端直接保存不做二次处理。这样就不需要秘钥解密什么的了。唯一的好处就是密码不是明文传输了,但对于安全性提升并没有多少。
https://blog.youkuaiyun.com/skyblacktoday/article/details/80255348
前端加密的意义
https://www.zhihu.com/question/25539382
https://www.imooc.com/wenda/detail/489712