RSA数字签名java实现

上传者: 15301601 | 上传时间: 2019-12-21 20:31:41 | 文件大小: 17KB | 文件类型: zip
1、数字签名原理 用RSA算法做数字签名,总的来说,就是签名者用私钥参数d加密,也就是签名;验证者用签字者的公钥参数e解密来完成认证。 下面简要描述数字签名和认证的过程。 (1)、生成密钥 为用户随机生成一对密钥:公钥(e,n)和私钥(d,n). (2)、签名过程 a) 计算消息的散列值H(M). b) 用私钥(d,n)加密散列值:s=(H(M)) mod n,签名结果就是s. c) 发送消息和签名(M,s). (3)、认证过程 a) 取得发送方的公钥(e,n). b) 解密签名s:h=s mod n. c) 计算消息的散列值H(M). d) 比较,如果h=H(M),表示签名有效;否则,签名无效。 根据上面的过程,我们可以得到RSA数字签名的框图如图2-1: 图 2-1 RSA数字签名框图 2、 假设Alice想和Bob通信,以本地两个文件夹Alice和Bob模拟两个用户,实现消息M和签名的模拟分发 (1)、Alice通过RSA算法生成一对密钥:公钥(e,n)和私钥(d,n),将公私钥分别存入pubKey.txt和priKey.txt中。 pubKey.txt中公钥如下: priKey.txt中私钥如下: (2)、将Alice中的pubKey.txt拷到Bob中,模拟公玥的分发。 (3)、将Alice中的消息info.txt做散列,将散列后的值存入hashInfo.txt中。 (4)、将Alice中的消息hashInfo.txt和签名sign.txt拷到Bob中,实现M密文状态下的签名与模拟分发、消息传递。 (5)Bob取得公钥pubKey.txt,用公钥解密签名,计算消息的散列值H(M).比较,如果h=H(M),表示签名有效;否则,签名无效。 后台运行结果如下:

文件下载

资源详情

( 19 个子文件 17KB ) RSA数字签名java实现
myRSA
bin
com
zwk
rsa
Receiver.class 3.05KB
Control.class 497B
CreateKey.class 2.14KB
Sender.class 2.22KB
Base.class 576B
util
MD5.class 1.90KB
CFile.class 1.67KB
Change.class 1.26KB
.settings
org.eclipse.jdt.core.prefs 629B
src
com
zwk
rsa
Sender.java 1.35KB
CreateKey.java 1.28KB
Receiver.java 2.10KB
Control.java 456B
Base.java 383B
util
CFile.java 1.14KB
MD5.java 1.06KB
Change.java 834B
.project 381B
.classpath 232B
[{"title":"( 19 个子文件 17KB ) RSA数字签名java实现","children":[{"title":"myRSA","children":[{"title":"bin","children":[{"title":"com","children":[{"title":"zwk","children":[{"title":"rsa","children":[{"title":"Receiver.class <span style='color:#111;'> 3.05KB </span>","children":null,"spread":false},{"title":"Control.class <span style='color:#111;'> 497B </span>","children":null,"spread":false},{"title":"CreateKey.class <span style='color:#111;'> 2.14KB </span>","children":null,"spread":false},{"title":"Sender.class <span style='color:#111;'> 2.22KB </span>","children":null,"spread":false},{"title":"Base.class <span style='color:#111;'> 576B </span>","children":null,"spread":false}],"spread":true},{"title":"util","children":[{"title":"MD5.class <span style='color:#111;'> 1.90KB </span>","children":null,"spread":false},{"title":"CFile.class <span style='color:#111;'> 1.67KB </span>","children":null,"spread":false},{"title":"Change.class <span style='color:#111;'> 1.26KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":".settings","children":[{"title":"org.eclipse.jdt.core.prefs <span style='color:#111;'> 629B </span>","children":null,"spread":false}],"spread":true},{"title":"src","children":[{"title":"com","children":[{"title":"zwk","children":[{"title":"rsa","children":[{"title":"Sender.java <span style='color:#111;'> 1.35KB </span>","children":null,"spread":false},{"title":"CreateKey.java <span style='color:#111;'> 1.28KB </span>","children":null,"spread":false},{"title":"Receiver.java <span style='color:#111;'> 2.10KB </span>","children":null,"spread":false},{"title":"Control.java <span style='color:#111;'> 456B </span>","children":null,"spread":false},{"title":"Base.java <span style='color:#111;'> 383B </span>","children":null,"spread":false}],"spread":true},{"title":"util","children":[{"title":"CFile.java <span style='color:#111;'> 1.14KB </span>","children":null,"spread":false},{"title":"MD5.java <span style='color:#111;'> 1.06KB </span>","children":null,"spread":false},{"title":"Change.java <span style='color:#111;'> 834B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":".project <span style='color:#111;'> 381B </span>","children":null,"spread":false},{"title":".classpath <span style='color:#111;'> 232B </span>","children":null,"spread":false}],"spread":true}],"spread":true}]

评论信息

  • qq_38074535 :
    还以为是自己实现的,,原来也是调用了内置方法。。。。。。。
    2019-04-01
  • 无名Q :
    还以为是自己实现的,,原来也是调用了内置方法。。。。。。。
    2019-04-01
  • jkefa :
    加密中文 可以先进行base64编码后
    2015-07-05
  • mycox :
    加密中文 可以先进行base64编码后
    2015-07-05
  • u013132887 :
    不能加密中文?
    2015-05-26
  • gabrielle_wang :
    资源不错,值得学习
    2015-05-26
  • Gabrielle_wang :
    资源不错,值得学习
    2015-05-26
  • i864918039 :
    不能加密中文?
    2015-05-26
  • qq_26627975 :
    资源不错,学习了
    2015-04-27
  • qq_26627975 :
    资源不错,学习了
    2015-04-27

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明
服务器状态检查中...