对称加密MD5和非对称加密RSA

1,205 阅读2分钟

对称加密md5

单向加密,双方共用一个秘钥。rsa双向加密,双方各自都有自己的公钥和私钥。


代码层面
双方加密和解密,都是使用同一个秘钥。


对称的意思是,双方使用同一个密码/秘钥。

1.A——B
A加密内容,B解密内容 //使用的是同一个密码

2.B——A
B加密内容,A解密内容 //使用的是同一个密码

非对称加密RSA

商家有公私钥对,通道也有公私钥对,分别告诉对方自己的公钥。

具体是,商家后台自助配置,或通道手动在通道总后台配置。

私钥各自自己保有,不能透露给任何人。


代码层面
商家用通道的公钥加密/签名请求参数,然后发送请求。 通道接收数据,用通道自己的私钥解密/验签数据;然后,再用商家的公钥加密数据发送响应数据。 商家用自己的私钥解密返回数据。


非对称的意思是,双方使用不同的公钥和私钥(注意,是公钥和私钥都不同)。


总结
对称和非对称指的是,加密和解密是否使用的是同一个密码。


为什么私钥可以解密公钥解密的数据?
欧拉函数 欧拉定理 互为质数


如何告知对方自己这边的公钥和私钥?
1.支付公司——商家
邮件发送,或注册账号申请

2.商家——支付公司
支付公司后台配置自己的公钥

总结
反正就是只能告诉对方自己这边的公钥,而不能告诉自己这边的私钥。 然后,加密的时候,都是使用对方的公钥去加密内容,对方接受数据之后,对方使用对方自己的私钥解密数据。

如何确保安全?或者说,安全包括哪几个方面?

如何确保安全

1.https确保网络传输过程加密安全

2.接收端接受到数据,通过验证签名来判断是否是准确用户的数据

签名字段的值=请求数据 + 秘钥

支付指令流程

1.发送端

请求数据

拼接数据

签名

发送

接受响应数据

验证签名 //数据验证通过

返回数据

2.服务器

接受数据

验证签名

响应数据

支付流程

1.支付 //订单未支付

2.查询 //更新订单支付状态为成功

3.验证签名

支付业务

算账和给钱

清算和结算

收银台和付款方式

1.收银台

包括很多支付方式,比如,扫码、h5、快捷支付

2.付款方式

扫码 //分app原生或H5

h5

参考

www.ruanyifeng.com/blog/2013/0…

zh.wikipedia.org/wiki/RSA加密演…