gpt4 book ai didi

Java:如何从字符串创建 RSA 公钥

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

我有 RSA 公钥的字节数组。我在互联网上发现我可以使用以下代码创建一个真正的 PublicKey 对象:

PublicKey publicKey = 
KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(bytes));

但每次我运行这段代码时,我都会得到另一个使用该 key 的加密数据的结果。我确定我要加密的数据总是相同的,代表 key 的字节数组也是如此。

这正常吗?

这是我的代码总是产生另一个输出:

byte[] keyBytes = Base64.decodeBase64(rsa_1024_public_key);
// rsa_1024_public key is a constant String

Cipher c = Cipher.getInstance("RSA");

PublicKey publicKey =
KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(keyBytes));

c.init(Cipher.ENCRYPT_MODE, publicKey);

return c.doFinal(password.getBytes());

这大概是非对称加密算法的一部分吧?

谢谢。

最佳答案

RSA 是不确定的。

您可以通过选择非随机填充模式使其具有确定性;但是,这并不安全。

关于Java:如何从字符串创建 RSA 公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480918/

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