RSA实现加密算法
来源:互联网 发布:java完整项目案例 编辑:程序博客网 时间:2024/05/17 22:50
1.新建一个java项目,里面新建一个java类,将要用的jar包加入到项目里面,整体的框架如下所示:
2.RSA.java里面的代码如下所示:
import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;import java.security.PublicKey;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import javax.crypto.Cipher;import org.apache.commons.codec.binary.Base64;public class RSA {private static String src = "mu rong fei fei 636";public static void jdkRSA() {try {// 1.初始化密钥KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");// JDK8要用1024,不能用512keyPairGenerator.initialize(1024);KeyPair keyPair = keyPairGenerator.generateKeyPair();RSAPublicKey rsaPublicKey = (RSAPublicKey) keyPair.getPublic();RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate();System.out.println("Public Key:"+ Base64.encodeBase64String(rsaPublicKey.getEncoded()));System.out.println("Private Key:"+ Base64.encodeBase64String(rsaPrivateKey.getEncoded()));System.out.println();// 2.私钥加密、公钥解密——加密PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded());KeyFactory keyFactory = KeyFactory.getInstance("RSA");PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);Cipher cipher = Cipher.getInstance("RSA");cipher.init(Cipher.ENCRYPT_MODE, privateKey);byte[] result = cipher.doFinal(src.getBytes());System.out.println("私钥加密、公钥解密——加密:"+ Base64.encodeBase64String(result));// 3.私钥加密,公钥解密——解密X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded());PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);cipher.init(Cipher.DECRYPT_MODE, publicKey);result = cipher.doFinal(result);System.out.println("私钥加密,公钥解密——解密:" + new String(result));System.out.println();// 4.公钥加密,私钥解密——加密x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded());publicKey = keyFactory.generatePublic(x509EncodedKeySpec);cipher = Cipher.getInstance("RSA");cipher.init(Cipher.ENCRYPT_MODE, publicKey);result = cipher.doFinal(src.getBytes());System.out.println("公钥加密,私钥解密——加密:"+ Base64.encodeBase64String(result));// 5.公钥加密,私钥解密——解密pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded());cipher = Cipher.getInstance("RSA");cipher.init(Cipher.DECRYPT_MODE, privateKey);result = cipher.doFinal(result);System.out.println("公钥加密,私钥解密——解密:" + new String(result));} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {jdkRSA();}}
3.运行之后得到的结果:
阅读全文
0 0
- RSA加密算法-Java实现
- C++实现RSA加密算法
- python实现RSA加密算法
- RSA加密算法的实现
- RSA加密算法 C++实现
- RSA实现加密算法
- AES,RSA,ECC加密算法实现
- AES,RSA,ECC加密算法实现
- RSA加密算法实现以及C#
- RSA加密算法java简单实现
- AES,RSA,ECC加密算法实现
- RSA加密算法的java实现
- RSA加密算法的简单实现
- java rsa加密算法java实现
- RSA加密算法的java实现
- AES,RSA,ECC加密算法实现
- JAVA实现RSA非对称加密算法
- 在SQL SERVER中实现RSA加密算法
- JS分享到QQ好友、腾讯微博等接口调用
- 备考OCJP认证知识点总结(四)
- Excel日期格式-文本格式快速转换
- [前端面试]数组排序:array.sort()方法的理解~
- LeetCode 0083
- RSA实现加密算法
- 51nod 1090 3个数和为0
- 10.4 博客
- 备考OCJP认证知识点总结(五)
- 如何显示二进制文件中的内容
- 递归-OpenJudge-7215:简单整数划分
- 从NTP服务器获取时间(C#)
- IIS下开启php扩展失效?
- 解决request中文乱码