java-信息安全(六)-基于RSA理解数字签名示例

概述

java-信息安全(四)-数据签名、数字证书html

java-信息安全(五)-非对称加密算法RSAjava

RSA工具类

使用java-信息安全(五)-非对称加密算法RSA项目中RSAgit

RSA签名流程:github

发送方—>构建密钥对-》公布密钥给接收方—>使用私钥对数据签名-》发送签名、数据给接收方。
接收方—》使用公钥、签名验证数据算法

算法分类

 

 

算法 密钥长度 默认长度 签名长度 实现的方
MD2withRSA 512-65536
(64的整数倍)
1024 同密钥 JDK
MD5withRSA 同上 1024 同密钥 JDK
SHA1withRSA ... 1024 同密钥 JDK
SHA224withRSA ... 2048 同密钥 BC
SHA256withRSA ... 2048 同密钥 BC
SHA384withRSA ... 2048 同密钥 BC
SHA512withRSA ... 2048 同密钥 BC
RIPEMD128withRSA   2048 同密钥 BC
RIPEMD160withRSA 同上 2048 同密钥 BC

数字签名理解【银行与我的信息交互】

        // 如下指示方便理解,并不是真实场景
        // 银行【公钥,私钥】----我的【银行的公钥】
        // 1、我的→银行【RSA公钥加密// 1.我的发给银行密码,使用银行公钥进行加密,发给银行
        // 2.银行读取解密后,准备回馈我的信息
        // 2、银行→我的【银行数字签名// 注:因为我的没有公钥,私钥,银行也就无法用我的的公钥进行数据加密,可是为了确保信息是银行发的,使用数字签名
        // 1.银行将要反馈给我的的数据进行,数字摘要【MD5,sha】等,将数字摘要用私钥加密,
        // 2.此时,银行将要发数据与私钥加密后的sign一块儿发给用户
        // 3.用户收到数据与签名,用公钥对签名进行解密,解密成功,说明信息是银行发的
        // 4.用户将数据用与银行约定好的数字摘要算法,进行数字摘要,对比解密后的签名与此签名是否一致,一致即数据完整
        // 补充1,为了防止,别人伪造银行,因此须要使用数字证书,对公钥进行认证,就不会被伪造

示例代码

 

代码地址:https://github.com/bjlhx15/algorithm-sign.git安全

相关文章
相关标签/搜索