本文将从RSA加密解密过程,详细介绍RSA非对称加密算法的原理。
RSA算法用到了大学数学中的一些定理和概念
欧拉定理
欧几里得定理
模逆元概念
java使用示例
public static void main(String[] args) throws Exception {
rrss();
}
public static void rrss() throws Exception {
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2000);
KeyPair keyPair = kpg.generateKeyPair();
System.out.println(keyPair.getPrivate().toString());
System.out.println(keyPair.getPublic().toString());
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
//ENCRYPT_MODE表示为加密模式
cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPrivate());
//加密
String preStr = "hhhhhhqqqqqq";
System.out.println("加密前:" + preStr);
byte[] rsaBytes = cipher.doFinal(preStr.getBytes());
System.out.println("加密后:" + new String(rsaBytes));
Cipher deCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
deCipher.init(Cipher.DECRYPT_MODE, keyPair.getPublic());
byte[] deRsaBytes = deCipher.doFinal(rsaBytes);
System.out.println("解密后:" + new String(deRsaBytes));
}