gpt4 book ai didi

java - 无法从相同的随机种子生成相同的 key 对

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:29:29 26 4
gpt4 key购买 nike

我正在使用 Java 密码术生成公钥和私钥。我正在使用 String.getBytes() 生成它。但是在解密时我使用相同的 String.getBytes() 来获取 key 。但是我没有得到与以前相同的 key 。请帮忙。以下是代码示例。

KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA");
SecureRandom ss = null;
ss = new SecureRandom("ABCD".getBytes(UNICODE_FORMAT));
keyGenerator.initialize(512, ss);
KeyPair myKeyPair = keyGenerator.generateKeyPair();

System.out.println(myKeyPair.getPrivate());
System.out.println(myKeyPair.getPublic());

最佳答案

您的代码表明您对应该如何使用非对称加密存在根本性的误解。您的发送者和接收者应该有自己的、独立的 key 对。然后发件人使用收件人的公钥加密数据。

您所做的是使用固定字符串在两个位置生成相同的 key 对。这并不安全,因为您已经将 key 空间从 512 位(这已经太小了 - 至少使用 1024 位)减少到与(可能很短的)字符串相关联的熵。

如果您希望在两端都使用“密码”字符串来派生 key ,则使用对称算法(例如 AES)和密码派生函数(例如 PBKDF2)。

关于java - 无法从相同的随机种子生成相同的 key 对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16335519/

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