微信支付项目支付安全
2.1 混合加密-机密性
AES 对称加密:密钥长度 128/192/256
加密分组模式:将明文分组加密
微信支付的对称加密:AEAD_AES_256_GCM
微信支付的非对称加密:RSA(公钥加密,私钥解密)
2.2 身份认证
非对称:私钥加密,公钥解密
2.3 摘要算法 Digest Algorithm-完整性
哈希函数:任意长度→固定长度(数据指纹、摘要)
特性:
- 不可逆:只有算法没有密钥,只能加密不呢个解密,只能暴力破解
- 发散性:原文的一点改动会使摘要发生剧烈变化(雪崩效应)
- 抗碰撞性:原文不同摘要也不同
摘要算法:MD5、SHA1、SHA2(SHA224、256、384)
2.4 数字签名-完整性+身份认证
用私钥对摘要进行加密生成签名
2.5 数字证书
公钥的信任:黑客伪造公钥
CA 生成数字证书:用 Hash 生成摘要→私钥加密生成签名
拿到正确的公钥和验签:
应用:https 协议网页加密