rsa加密算法Java实现
时间: 2023-11-08 20:46:51 浏览: 127
RSA加密算法在Java中可以使用Java Cryptographic Extension (JCE)提供的工具来实现。下面是一个示例代码,演示了如何使用RSA加密和解密数据:
```java
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import javax.crypto.Cipher;
public class RSAEncryptionExample {
public static void main(String[] args) throws Exception {
// 生成RSA密钥对
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048); // 设置密钥长度为2048位
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
// 要加密的数据
String originalText = "Hello, RSA!";
// 使用公钥加密数据
Cipher encryptCipher = Cipher.getInstance("RSA");
encryptCipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedBytes = encryptCipher.doFinal(originalText.getBytes());
// 使用私钥解密数据
Cipher decryptCipher = Cipher.getInstance("RSA");
decryptCipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedBytes = decryptCipher.doFinal(encryptedBytes);
// 解密后的结果
String decryptedText = new String(decryptedBytes);
System.out.println("原始数据: " + originalText);
System.out.println("加密后的数据: " + new String(encryptedBytes));
System.out.println("解密后的数据: " + decryptedText);
}
}
```
这个示例代码中,首先生成了一个RSA密钥对,然后使用公钥加密数据,再使用私钥解密数据。在实际使用中,你可以将公钥和私钥保存下来,用于加密和解密其他数据。
阅读全文