RSA非对称加密解密例子
来源:互联网 发布:电子阅读器知乎 编辑:程序博客网 时间:2024/05/16 17:17
------要加密的内容
String encryptText = "encryptText";
keyPairGen.initialize(1024);KeyPair keyPair = keyPairGen.generateKeyPair();
// Generate keys
RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
//存放公钥密钥路径。
FileOutputStream pubfos = new FileOutputStream("E:/xlmPublicKey.dat");
ObjectOutputStream puboos = new ObjectOutputStream(pubfos);
//生成公钥密钥
puboos.writeObject(publicKey);
puboos.close();
//保存私钥文件
FileOutputStream prifos = new FileOutputStream("E:/xlmPrivateKey.dat");
ObjectOutputStream prioos = new ObjectOutputStream(prifos);
prioos.writeObject(privateKey);
prioos.close();
---------采用公钥进行加密
byte[] de = encrypt.decrypt2(publicKey, e);
System.out.println(encrypt.bytesToString(e));
System.out.println(encrypt.bytesToString(de));
//保存密文
FileOutputStream lfos = new FileOutputStream("E:/license.dat");
DataOutputStream ldos=new DataOutputStream(lfos);
ldos.write(e);
ldos.close();
解密:
RSAEncrypt encrypt = new RSAEncrypt();
// 生成实现指定摘要算法的 KeyPairGenerator 对象。RSA摘要
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
FileInputStream pubfis = new FileInputStream("E:/xlmPublicKey.dat");
ObjectInputStream puboos = new ObjectInputStream(pubfis);
//生成公钥密钥
RSAPublicKey pk=(RSAPublicKey)puboos.readObject();
puboos.close();
byte[] b = new byte[128];
int len = 0;
FileInputStream lfis = new FileInputStream("E:/license.dat");
DataInputStream ldos=new DataInputStream(lfis);
while ((len = ldos.read(b)) != -1) {
ldos.read(b, 0, len);
}
byte[] de = encrypt.decrypt2(pk, b);
System.out.println(encrypt.bytesToString(de));
/**
* 私钥加密
*
* @return byte[]
*/
protected byte[] encrypt2(RSAPrivateKey privateKey, byte[] obj) {
if (privateKey != null) {
try {
Cipher cipher = Cipher.getInstance("RSA");
// ENCRYPT_MODE : 用于将 cipher 初始化为加密模式的常量。
cipher.init(Cipher.ENCRYPT_MODE, privateKey);
return cipher.doFinal(obj);
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* Basic decrypt method 公钥解密
*
* @return byte[]
*/
protected byte[] decrypt2(RSAPublicKey publicKey, byte[] obj) {
if (publicKey != null) {
try {
Cipher cipher = Cipher.getInstance("RSA");
// DECRYPT_MODE : 用于将 cipher 初始化为解密模式的常量。
cipher.init(Cipher.DECRYPT_MODE, publicKey);
return cipher.doFinal(obj);
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
- RSA非对称加密解密例子
- RSA非对称加密解密
- RSA非对称加密解密
- 非对称RSA加密解密
- RSA加密、解密、签名(非对称加密)
- RSA非对称加密和解密方法
- RSA 非对称加密与解密
- Android RSA非对称加密解密算法
- Android: AndroidKeyStore 非对称RSA加密解密
- Java对称与非对称加密解密,AES与RSA
- Java对称与非对称加密解密,AES与RSA
- Java对称与非对称加密解密,AES与RSA
- php rsa加密解密实例(非对称加密)
- android RSA加密 解密 非对称可逆加密
- RSA 非对称加密
- RSA非对称加密
- RSA非对称加密
- RSA非对称加密
- 数据库连接程序
- 一个用wiEngine写的非常简单的游戏
- Mongodb 启动时异常,dbexit: really exiting now
- C++中字符编码
- Linux系统监控工具之vmstat详解
- RSA非对称加密解密例子
- 通过class字节码了解StringBuilder拼接字符串效率高的原因
- 在iphone指定目录写文件log
- GHOST系统备份图
- Execution plan
- Android 权限大全
- S5PV210之UBOOT-2011.06启动过程解析-基于u-boot for tiny210 ver3.1 (by liukun321咕唧咕唧)
- 西方酒馆(一)
- 串口通信协议