支付安全
对称加密
加密密钥与解密密钥相同
- 优点:运算速度快
- 缺点:密钥需要交换信息的双方共享,一旦被窃取,消息会被解密
AES算法:密钥长度128、256或512。安全强度高,性能很好(目前最流行的)
加密分组模式:将明文分组加密,微信支付中使用AEAD_AES_256_GCM
非对称加密
密钥分为公钥与私钥,公钥可以公开,私钥需要自己保密
使用公钥加密后只能用私钥解密,反之亦然
- 优点:私钥严格保密,公钥任意分发,黑客获取公钥无法破解密文
- 缺点:运算速度慢
RSA算法:最著名的非对称加密算法
- 公钥加密,私钥解密:保证消息私密性
- 私钥加密,公钥解密:身份认证
摘要算法
用于保证消息的完整性
- 不可逆:只要算法,没要密钥。只能加密,不能解密
- 难题友好性:想要破解,只能暴力枚举
- 发散性:只要原文进行一点点改动,摘要就会发生剧烈变化
- 抗碰撞性:原文不同,计算后的摘要也不同
常见摘要算法:MD5,SHA1,SHA2(SHA224、SHA256、SHA384)
数字签名
发送方:将消息的明文使用摘要算法计算出摘要,再通过私钥对摘要加密,将摘要的密文与消息的明文一起发送
接收发:使用公钥解密出摘要的明文,再与自己收到的消息明文计算的摘要进行对比。
数字证书
由受信任的CA颁布,以确保发布的公钥的是真实未被篡改的
典型场景:HTTPS