java 非对称加密一台机器执行
时间: 2023-10-19 11:15:47 浏览: 49
您需要先生成一对公私钥,可以使用Java中的`KeyPairGenerator`类来生成。然后使用公钥对数据进行加密,私钥对数据进行解密。
以下是一个简单的示例代码:
```java
import java.security.*;
public class AsymmetricEncryptionExample {
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 data = "Hello, world!";
// 加密
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedData = cipher.doFinal(data.getBytes());
// 解密
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedData = cipher.doFinal(encryptedData);
System.out.println("原始数据:" + data);
System.out.println("加密后数据:" + new String(encryptedData));
System.out.println("解密后数据:" + new String(decryptedData));
}
}
```
注意,此示例代码并未考虑数据分块加密的情况。在实际应用中,需要对较大的数据进行分块加密,以避免加密时出现内存不足错误。
阅读全文