一、数字签名算法
- 签名,比如刷卡消费时需要手写签名,比如
- 数字签名,带有密钥(公钥、私钥)的消息摘要算法
- 作用,验证数据完整性、认证数据来源、抗否认
- OSI参考模型
- 私钥签名、公钥验证
- 常见算法,RSA、DSA、ECDSA
二、数字签名算法——RSA
1.简介
- 经典算法
- MD、SHA两类,区别如图:
2.RSA数字签名算法实现和验证过程如图:
3. 代码实现,可参考本人码云项目:https://gitee.com/kevinshaw/Security rsa2包的MyRSA类
三、数字签名算法——DSA
1.由来简介:
- DSS(Digital Signature Standard)数字签名标准
- DSA(Digital Signature Algorithm) 数字签名算法
- DSA仅包含数字签名,使用DSA的数字证书进行数字签名,无法进行加密,但RSA即包括数据加解密、并兼具数字签名功能
2.DSA算法实现,如图:
3.DSA数字签名算法加密数据传输和验证过程如图:
4.代码实现,可参考本人码云项目:https://gitee.com/kevinshaw/Security MyDSA类
四、数字签名算法——ECDSA
1.简介及由来:
- 微软产品的激活序列号用的验证方法就是ECDSA数字签名算法
- Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法
- 速度快、强度高、签名短
2.ECDSA的不同实现方式如图:JDK 1.7 u4后JDK提供了ECDSA的实现,之前是没有的!
3.ECDSA密钥构建与数据验证过程如图:
4.代码实现,可参考本人码云项目:https://gitee.com/kevinshaw/Security MyECDSA类
本文为原创文章,如果对你有一点点的帮助,别忘了点赞哦!比心!如需转载,请注明出处,谢谢!