rsa加密算法java
时间: 2023-09-03 21:15:07 浏览: 125
RSA是一种非对称加密算法,可以用于数据加密和数字签名。下面是一个使用Java实现RSA加密的示例代码:
```
import java.security.*;
import javax.crypto.*;
import java.util.*;
import java.io.*;
public class RSAExample {
public static void main(String[] args) throws Exception {
// 生成公钥和私钥
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
SecureRandom random = new SecureRandom();
keyGen.initialize(1024, random);
KeyPair pair = keyGen.generateKeyPair();
PublicKey publicKey = pair.getPublic();
PrivateKey privateKey = pair.getPrivate();
// 明文
String plainText = "Hello, world!";
// 加密
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] cipherText = cipher.doFinal(plainText.getBytes());
// 解密
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedText = cipher.doFinal(cipherText);
// 输出结果
System.out.println("明文: " + plainText);
System.out.println("密文: " + Base64.getEncoder().encodeToString(cipherText));
System.out.println("解密后的明文: " + new String(decryptedText));
}
}
```
上面的代码中,首先生成公钥和私钥,然后使用公钥对明文进行加密,再使用私钥对密文进行解密,最后输出结果。在加密和解密时,需要指定算法和填充方式。在本例中,使用的是RSA算法和PKCS1填充方式。
阅读全文