Java如何使用RSA加密解密
时间: 2024-10-16 07:05:38 浏览: 33
Java实现的RSA加密解密算法示例
在Java中,你可以使用内置的`java.security`和`javax.crypto`包中的`KeyPairGenerator`、`Cipher`类以及`RSAPrivateKey`和`RSAPublicKey`类来进行RSA加密和解密。以下是基本步骤:
**生成公钥/私钥对:**
```java
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(2048); // 选择密钥长度,比如2048位
KeyPair keyPair = keyGen.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate(); // 私钥
PublicKey publicKey = keyPair.getPublic(); // 公钥
```
**加密过程(使用公钥):**
```java
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); // 实例化cipher
cipher.init(Cipher.ENCRYPT_MODE, publicKey); // 初始化加密模式
byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes()); // 加密明文
```
**解密过程(使用私钥):**
```java
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedBytes = cipher.doFinal(ciphertext); // 解密密文
String decryptedText = new String(decryptedBytes);
```
注意,`RSA/ECB/PKCS1Padding`是一种常见的组合,表示使用电子密码本(ECB)模式,基于PKCS#1标准的填充方法。
阅读全文