本文将从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)); }