Java rsa加密
时间: 2024-11-10 07:32:01 浏览: 12
RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman于1977年首次提出,因此得名Rivest-Shamir-Adleman(RSA)。在Java中,你可以利用内置的`java.security`包来进行RSA加密操作。以下是基本步骤:
1. 导入所需的库:
```java
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import javax.crypto.Cipher;
```
2. 生成密钥对(公钥和私钥):
```java
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(2048); // 通常选择较高的位数保证安全性
KeyPair keyPair = keyGen.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
```
3. 加密数据(使用公钥):
```java
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); // ECB模式仅用于演示
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedData = cipher.doFinal(somePlainText.getBytes());
```
4. 解密数据(使用私钥):
```java
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedData = cipher.doFinal(encryptedData);
String originalText = new String(decryptedData);
```
注意,实际应用中会使用更安全的模式如CBC(Cipher Block Chaining),并考虑秘钥管理和存储的安全性。
阅读全文