沒有任何第三方jar包依賴
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.util.Base64;
import javax.crypto.Cipher;
public class RSA {
private static PublicKey pubKey = null;
private static PrivateKey priKey = null;
public static void main(String[] args) throws Exception {
generateKeyPair();
System.out.println("公鑰:" + Base64.getEncoder().encodeToString(pubKey.getEncoded()));
System.out.println("私鑰:" + Base64.getEncoder().encodeToString(priKey.getEncoded()));
String str = "I am YiMi";
String encryptText = encrypt(str);
System.out.println("密文:" + encryptText);
System.out.println("解密:" + decrypt(encryptText));
}
public static void generateKeyPair() throws NoSuchAlgorithmException {
KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA");
gen.initialize(1024, new SecureRandom());
KeyPair kp = gen.genKeyPair();
priKey = kp.getPrivate();
pubKey = kp.getPublic();
}
public static String encrypt(String data) throws Exception {
Cipher c = Cipher.getInstance("RSA");
c.init(Cipher.ENCRYPT_MODE, pubKey);
return Base64.getEncoder().encodeToString(c.doFinal(data.getBytes()));
}
public static String decrypt(String data) throws Exception {
Cipher c = Cipher.getInstance("RSA");
c.init(Cipher.DECRYPT_MODE, priKey);
return new String(c.doFinal(data.getBytes()));
}
}