logo

您所在位置网站首页 > 海量文档  > 企划文宣(应用文书) > 规范文件

非对称加密算法.doc 12页

本文档一共被下载: ,您可全文免费在线阅读后下载本文档。

  • 支付并下载
  • 收藏该文档
  • 百度一下本文档
  • 修改文档简介
全屏预览

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
非对称加密算法/数字签名算法——RSA 接下来我们介绍典型的非对称加密算法/数字签名算法——RSA? RSA? ??? 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。? ??? 这种加密算法的特点主要是密钥的变化,上文我们看到DES只有一个密钥。相当于只有一把钥匙,如果这把钥匙丢了,数据也就不安全了。RSA同时有两把钥匙,公钥与私钥。同时支持数字签名。数字签名的意义在于,对传输过来的数据进行校验。确保数据在传输工程中不被修改。? 流程分析:? 甲方构建密钥对儿,将公钥公布给乙方,将私钥保留。 甲方使用私钥加密数据,然后用私钥对加密后的数据签名,发送给乙方签名以及加密后的数据;乙方使用公钥、签名来验证待解密数据是否有效,如果有效使用公钥对数据解密。 乙方使用公钥加密数据,向甲方发送经过加密后的数据;甲方获得加密数据,通过私钥解密。 按如上步骤给出序列图,如下:? 通过java代码实现如下:Coder类见? Java加密技术(一)? Java代码?? import?java.security.Key;?? import?java.security.KeyFactory;?? import?java.security.KeyPair;?? import?java.security.KeyPairGenerator;?? import?java.security.PrivateKey;?? import?java.security.PublicKey;?? import?java.security.Signature;?? import?java.security.interfaces.RSAPrivateKey;?? import?java.security.interfaces.RSAPublicKey;?? import?java.security.spec.PKCS8EncodedKeySpec;?? import?java.security.spec.X509EncodedKeySpec;?? ?? import?java.util.HashMap;?? import?java.util.Map;?? ?? import?javax.crypto.Cipher;?? ?? /**? ?*?RSA安全编码组件? ?*?? ?*?@author?梁栋? ?*?@version?1.0? ?*?@since?1.0? ?*/?? public?abstract?class?RSACoder?extends?Coder?{?? ????public?static?final?String?KEY_ALGORITHM?=?"RSA";?? ????public?static?final?String?SIGNATURE_ALGORITHM?=?"MD5withRSA";?? ?? ????private?static?final?String?PUBLIC_KEY?=?"RSAPublicKey";?? ????private?static?final?String?PRIVATE_KEY?=?"RSAPrivateKey";?? ?? ????/**? ?????*?用私钥对信息生成数字签名? ?????*?? ?????*?@param?data? ?????*????????????加密数据? ?????*?@param?privateKey? ?????*????????????私钥? ?????*?? ?????*?@return? ?????*?@throws?Exception? ?????*/?? ????public?static?String?sign(byte[]?data,?String?privateKey)?throws?Exception?{?? ????????//?解密由base64编码的私钥?? ????????byte[]?keyBytes?=?decryptBASE64(privateKey);?? ?? ????????//?构造PKCS8EncodedKeySpec对象?? ????????PKCS8EncodedKeySpec?pkcs8KeySpec?=?new?PKCS8EncodedKeySpec(keyBytes);?? ?? ????????//?KEY_ALGORITHM?指定的加密算法?? ????????KeyFactory?keyFactory?=?KeyFactory.getInsta

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片

“原创力文档”前称为“文档投稿赚钱网”,本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。原创力文档是网络服务平台方,若您的权利被侵害,侵权客服QQ:3005833200 电话:19940600175 欢迎举报,上传者QQ群:784321556