rsa加密算法java实现
时间: 2023-06-14 17:07:24 浏览: 124
RSA加密算法是一种非对称加密算法,Java提供了相关的API来实现RSA加密算法。以下是一个简单的RSA加密算法的Java实现:
```java
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import javax.crypto.Cipher;
public class RSAEncryptionExample {
public static void main(String[] args) throws Exception {
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048);
KeyPair kp = kpg.generateKeyPair();
PublicKey publicKey = kp.getPublic();
PrivateKey privateKey = kp.getPrivate();
String data = "Hello, world!";
byte[] encryptedData = encrypt(data.getBytes(), publicKey);
byte[] decryptedData = decrypt(encryptedData, privateKey);
System.out.println("Original data: " + data);
System.out.println("Encrypted data: " + new String(encryptedData));
System.out.println("Decrypted data: " + new String(decryptedData));
}
public static byte[] encrypt(byte[] data, PublicKey publicKey) throws Exception {
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
return cipher.doFinal(data);
}
public static byte[] decrypt(byte[] data, PrivateKey privateKey) throws Exception {
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
return cipher.doFinal(data);
}
}
```
在该示例中,我们使用KeyPairGenerator类生成了一个RSA密钥对,其中包括公钥和私钥。我们使用公钥加密数据并使用私钥解密数据。Cipher类提供了加密和解密功能,其中传递的参数包括加密模式和密钥。在加密过程中,我们使用公钥进行加密,而在解密过程中,我们使用私钥进行解密。
阅读全文