JAVA加解密 -- 数字签名算法
来源:互联网 发布:mac pro 验证码 编辑:程序博客网 时间:2024/06/08 19:48
数字签名 – 带有密钥的消息摘要算法
作用:验证数据完整性、认证数据来源、抗否认(OSI参考模型)
私钥签名,公钥验证
RSA 包含非对称算法和数字签名算法
实现代码:
//1.初始化密钥 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(512); KeyPair keyPair = keyPairGenerator.generateKeyPair(); RSAPublicKey rsaPublicKey = (RSAPublicKey) keyPair.getPublic(); RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate(); //执行签名 PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded()); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); Signature signature = Signature.getInstance("MD5withRSA"); signature.initSign(privateKey); signature.update(str.getBytes()); byte[] result = signature.sign(); System.out.println("JDK RSA SIGN:" + Hex.encodeHexString(result)); //3.验证签名 X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded()); keyFactory = keyFactory.getInstance("RSA"); PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); signature = Signature.getInstance("MD5withRSA"); signature.initVerify(publicKey); signature.update(str.getBytes()); boolean falg = signature.verify(result); System.out.println("JDK RSA VERIFY:"+falg);
DSA DSS -- 数字签名标准 DSA仅包含数字签名ECDSA 椭圆曲线数字签名算法,JDK1.7之后才有的内容 实现方式和RSA一致 只需将指定地方改为EC,再在首句加上Security.addProvider(new BouncyCastlePQCProvider());即可
JAVA加解密算法源码:http://download.csdn.net/detail/jacxuan/9774737
12 0
- JAVA加解密 -- 数字签名算法
- [JAVA加解密]数字签名
- Java加解密与数字签名
- Java加解密与数字签名
- Java加解密密和数字签名
- Java加解密密和数字签名
- java加解密算法
- java 加解密算法
- RSA算法加解密(JAVA)
- [JAVA加解密]DH算法
- java des加解密算法
- Java,RSA加解密算法
- RSA算法加解密(JAVA)
- RSA数字签名和加解密
- JAVA RSA加解密和数字签名、DES加解密 在项目中的实际使用
- JAVA RSA加解密和数字签名、DES加解密 在项目中的实际使用
- [JAVA加解密]RSA算法、ElGamal算法
- Java加密与解密学习记录06-数字签名算法
- ROS总结——ROS话题
- Hibernate持久化对象的学习
- 性能优化-shuffle
- 一个python小爬虫
- Sublime Text3 之二十个强大插件(必须收藏)
- JAVA加解密 -- 数字签名算法
- HDU 1539 Shredding Company dfs枚举每位数字的空格
- 手把手 教你 把Lua 打造一个Windows 下的dll
- java.io.IOException:stream closed 异常的原因及处理
- 有限状态机的简单使用案例:“将字符串中多于一个的空格变为一个空格输出”
- Coursera ML笔记 --- week1:单变量的线性回归+梯度下降法
- Spring源码解读 Spring初始化Bean时扩展
- Spark性能调优-kyro
- JSP标准标签库之格式化标签+(SQL标签+XML标签+JSTL函数的语法)