java RSA加解密
时间: 2024-09-10 14:00:46 浏览: 42
Java RSA 加密解密
在Java中,RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman于1977年首次提出,用于安全的数据传输。它的核心原理是利用两个大素数的乘积作为公钥和私钥,公钥可以公开分享,而私钥需要保密。
**加解密过程如下:**
1. **生成密钥对**:
- **公共密钥(PublicKey)**:公开传播,用于加密数据。
- **私人密钥(PrivateKey)**:只有接收方持有,用于解密接收到的加密数据。
2. **加密**:
使用接收者的公钥,发送者将明文消息转换成数字,通过RSA的数学运算(如模幂运算)加密,得到密文。
```java
RSAPublicKeySpec publicKeySpec = ...; // 公钥信息
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedBytes = cipher.doFinal(message.getBytes());
```
3. **解密**:
接收方使用自己的私钥进行解密,恢复原始消息。
```java
RSAPrivateKeySpec privateKeySpec = ...; // 私钥信息
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
String decryptedMessage = new String(decryptedBytes);
```
阅读全文