gpt4 book ai didi

java - 使用 RSA 加密和解密字符串

转载 作者:太空宇宙 更新时间:2023-11-04 14:58:37 25 4
gpt4 key购买 nike

我是 Java 安全和加密领域的新手。下面的代码没有返回正确的解密结果。

另外,请告诉我有关使用算法创建强 key 的任何建议。

下面的代码有两种方法,一种是加密字符串,另一种是解密。

public class TestSecurityDiscussions {

public static byte[] encryptData(KeyPair keys){

String rawData = "Hi how are you>?";
Cipher cipher = Cipher.getInstance("RSA");
try {
cipher.init(Cipher.ENCRYPT_MODE, keys.getPublic());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] encrypted = cipher.doFinal(rawData.getBytes());

return encrypted;
}


public static String decryptData(byte[] encrypted,KeyPair keys) {
Cipher cipher = Cipher.getInstance("RSA");
try {
cipher.init(Cipher.DECRYPT_MODE, keys.getPrivate());
} catch (Exception e) {

e.printStackTrace();
}
byte[] deycrypted = cipher.doFinal(encrypted);

return deycrypted.toString();
}


public static void main(String[] args) {
KeyPair keys = KeyPairGenerator.getInstance("RSA").generateKeyPair();
byte[] keydata = encryptData(keys);
System.out.println("======>"+decryptData(keydata,keys));

}

}

最佳答案

我认为你的问题是这一行:

return decrypted.toString();

字节字符串将通过toString()给出一个内存位置。你应该这样做:

return new String(decrypted);

关于java - 使用 RSA 加密和解密字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22893220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com