import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import javax.crypto.Cipher;
public class RsaTest {
public static void main(String args[]) throws Exception {
SecureRandom sr = new SecureRandom();
KeyPairGenerator kg = KeyPairGenerator.getInstance("RSA");
kg.initialize(512, sr);
//產生新密鑰對
KeyPair kp = kg.generateKeyPair();
//獲得私匙
PrivateKey prk = kp.getPrivate();
//獲得公鑰
PublicKey puk = kp.getPublic();
String str = "你好嗎?我在測試RSA測試^_^";
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, prk);
byte[] dest = cipher.doFinal(str.getBytes());
System.out.println(new String(dest));
Cipher ciphers = Cipher.getInstance("RSA");
ciphers.init(Cipher.DECRYPT_MODE,puk);
byte[] srcs = ciphers.doFinal(dest);
System.out.println("解密后的數據:"+new String(srcs));
}
}
</script>