rsa加解密 java
时间: 2023-07-09 07:16:57 浏览: 176
RSA(Rivest–Shamir–Adleman)是一种非对称加密算法,可以用于加密和解密数据。在Java中,可以使用Java加密扩展(Java Cryptography Extension,JCE)提供的RSA类来实现RSA加解密。
以下是一个简单的RSA加解密示例:
```java
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Security;
import javax.crypto.Cipher;
public class RSADemo {
public static void main(String[] args) throws Exception {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
// 生成RSA密钥对
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "BC");
generator.initialize(2048);
KeyPair keyPair = generator.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
// 使用公钥加密数据
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] input = "Hello, world!".getBytes();
byte[] cipherText = cipher.doFinal(input);
System.out.println("Cipher text: " + new String(cipherText));
// 使用私钥解密数据
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] plainText = cipher.doFinal(cipherText);
System.out.println("Plain text: " + new String(plainText));
}
}
```
需要注意的是,上面的示例中使用的是Bouncy Castle作为Java加密扩展提供者,需要将Bouncy Castle库添加到项目中才能正常运行。
阅读全文