Generate RSA key pair using Java, and test encryption/decryption.
package com.rsa; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import javax.crypto.Cipher; public class RSATest { /** * Generate key pair and encrypt/decrypt message. * @param args * @throws Throwable */ public static void main(String[] args) throws Throwable { String str = "liguoliang.com"; // init private/public key KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(512); KeyPair keyPair = keyGen.generateKeyPair(); PrivateKey privateKey = keyPair.getPrivate(); PublicKey publicKey = keyPair.getPublic(); System.out.println("privateKey: " + privateKey); System.out.println("PublicKey: " + publicKey); System.out.println("Original message: [" + str + "]"); // init cipher Cipher cipher; cipher = Cipher.getInstance("RSA"); // Encrypt cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] encryptedMsg = cipher.doFinal(str.getBytes()); System.out.println("Encrypted message: [" + new String(encryptedMsg) + "]"); // Decrypt cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] decryptedMsg = cipher.doFinal(encryptedMsg); System.out.println("Decrypted message: [" + new String(decryptedMsg) + "]"); } }
privateKey: Sun RSA private CRT key, 512 bits
modulus: 6722431852833652083740039
public exponent: 65537
private exponent: 171186757391917267536..695551529001
prime p: 9879891158983359366387147661330…7700131643
prime q: 680415577930859..89085598145526159671701009583973
prime exponent p: 320741816528876..9797652301875289
prime exponent q: 1025757344699..140192255455019921532401
crt coefficient: 60972956628933..8290909983925983303
PublicKey: Sun RSA public key, 512 bits
modulus: 672243185283365208374001..
public exponent: 65537
Original message: [liguoliang.com]
Encrypted message: ['ËŸò¬Œ÷Já°`ð«6L´aZ0Ž¶¹mçZaÐvCóG%P ƒtÂÌÖ9ØùýY,vÎ`¦Y»ù h]
Decrypted message: [liguoliang.com]
RSA Encryption in Java – http://tspycher.com/2012/10/rsa-encryption-in-java/
用实例给新手讲解RSA加密算法 – http://bank.hexun.com/2009-06-24/118958531.html
http://introcs.cs.princeton.edu/java/78crypto/RSA.java.html
// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.