java库函数实现RSA加密解密
时间: 2024-08-31 07:00:36 浏览: 61
c++通过openssl实现rsa加密解密【windows版】
在Java中,可以使用`java.security`包中的类和接口来实现RSA加密和解密。以下是一个简单的示例,展示了如何使用Java自带的库函数进行RSA加密和解密:
1. 生成密钥对:首先需要生成一对RSA密钥,包括一个公钥和一个私钥。可以使用`KeyPairGenerator`类来完成这项工作。
2. 密钥保存:生成密钥对后,通常需要将它们保存在安全的地方,以便将来使用。公钥用于加密数据,私钥用于解密数据。
3. 加密过程:使用公钥对数据进行加密,可以使用`Cipher`类并指定加密算法为RSA。
4. 解密过程:使用私钥对加密后的数据进行解密,同样使用`Cipher`类。
以下是一个简单的代码示例:
```java
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import javax.crypto.Cipher;
public class RSAExample {
public static void main(String[] args) throws Exception {
// 生成密钥对
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(2048);
KeyPair keyPair = keyGen.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
// 待加密的数据
String original = "Hello World";
// 使用公钥加密
Cipher encryptCipher = Cipher.getInstance("RSA");
encryptCipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] cipherText = encryptCipher.doFinal(original.getBytes());
// 使用私钥解密
Cipher decryptCipher = Cipher.getInstance("RSA");
decryptCipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] plainText = decryptCipher.doFinal(cipherText);
// 输出加密和解密后的数据
System.out.println("Original: " + original);
System.out.println("Encrypted: " + new String(cipherText));
System.out.println("Decrypted: " + new String(plainText));
}
}
```
这段代码首先生成了一个RSA密钥对,然后使用公钥对字符串"Hello World"进行加密,并用私钥进行解密。
阅读全文