import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import javax.crypto.Cipher;
/**
* RSA加密类
*
*/
public class RSAEncrypt {
public static void main
(String[] args
) {
try {
RSAEncrypt encrypt = new RSAEncrypt();
String encryptText
= "12345678";
keyPairGen.initialize(1024);
KeyPair keyPair
= keyPairGen.
generateKeyPair();
// Generate keys
byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes());
byte[] de = encrypt.decrypt(privateKey, e);
System.
out.
println(encrypt.
bytesToString(e
));
System.
out.
println(encrypt.
bytesToString(de
));
e.printStackTrace();
}
}
/**
* byte数组转为string
*
* @param encrytpByte
* @return
*/
protected String bytesToString
(byte[] encrytpByte
) {
for (Byte bytes
: encrytpByte
) {
result += (char) bytes.intValue();
}
return result;
}
/**
* 加密方法
*
* @param publicKey
* @param obj
* @return
*/
protected byte[] encrypt
(RSAPublicKey publicKey,
byte[] obj
) {
if (publicKey != null) {
try {
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
return cipher.doFinal(obj);
e.printStackTrace();
}
}
return null;
}
/**
* 解密方法
*
* @param privateKey
* @param obj
* @return
*/
if (privateKey != null) {
try {
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
return cipher.doFinal(obj);
e.printStackTrace();
}
}
return null;
}
}