欢迎来到天天文库
浏览记录
ID:26623392
大小:148.50 KB
页数:9页
时间:2018-11-28
《java加密技术六》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java加密技术(六)文章分类:Java编程 接下来我们介绍DSA数字签名,非对称加密的另一种实现。DSADSA-DigitalSignatureAlgorithm是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignatureStandard)。简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签名。如果数据和签名不匹配则认为验证失败!数字签名的作用就是校验数据在传输过程中不被修改。数字签名,是单向加密的升级!1.1.通过java代码实现如下:
2、Coder类见Java加密技术(一)Java代码1.import java.security.Key; 2.import java.security.KeyFactory; 3.import java.security.KeyPair; 4.import java.security.KeyPairGenerator; 5.import java.security.PrivateKey; 6.import java.security.PublicKey; 7.import java.security.SecureRandom; 8.import ja
3、va.security.Signature; 9.import java.security.interfaces.DSAPrivateKey; 10.import java.security.interfaces.DSAPublicKey; 11.import java.security.spec.PKCS8EncodedKeySpec; 12.import java.security.spec.X509EncodedKeySpec; 13.import java.util.HashMap; 14.import java.util.Map; 15.
4、 16./** 17. * DSA安全编码组件 18. * 19. * @author 梁栋 1. * @version 1.0 2. * @since 1.0 3. */ 4.public abstract class DSACoder extends Coder { 5. 6. public static final String ALGORITHM = "DSA"; 7. 8. /** 9. * 默认密钥字节数 10. * 11. *
12. * DSA 13. * Defa5、ult Keysize 1024 14. * Keysize must be a multiple of 64, ranging from 512 to 1024 (inclusive). 15. *
5、ult Keysize 1024 14. * Keysize must be a multiple of 64, ranging from 512 to 1024 (inclusive). 15. *
6、bbddd07d8a3082122966e3"; 23. 24. private static final String PUBLIC_KEY = "DSAPublicKey"; 25. private static final String PRIVATE_KEY = "DSAPrivateKey"; 26. 27. /** 28. * 用私钥对信息生成数字签名 29. * 30. * @param data 31. * 加密数据 32. * @param privat
7、eKey 33. * 私钥 34. * 35. * @return 36. * @throws Exception 37. */ 38. public static String sign(byte[] data, String privateKey) throws Exception { 1. // 解密由base64编码的私钥 2. byte[] keyBytes = decryptBASE64(privateKey); 3. 4. //
8、 构造PKCS8Enco
此文档下载收益归作者所有