gpt4 book ai didi

java - 用于 java 的 bouncycaSTLe 中的 RSA - 如何获得密文随机化?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:56:32 24 4
gpt4 key购买 nike

我实际上正在为我的应用程序 RSA 加密使用 bouncycaSTLe 库。我的问题是:当我使用同一个 key 对一个明文进行两次加密时,它会导致两个不同的密文,因此在 bouncycaSTLes 实现中必须有某种随机化(RSA 本身不是随机的,所以 enc(a, k)总是一样的)。

谁能告诉我这是怎么做到的?我发现了一些关于加密致盲的信息,但对我来说,我似乎必须为此使用一些致盲引擎。

这是我的源代码:

private byte[] encRSA(byte[] in, java.security.PublicKey publicKey) {
try {
Cipher rsaCipher = Cipher.getInstance("RSA/NONE/PKCS1Padding", "BC");
rsaCipher.init(Cipher.ENCRYPT_MODE, publicKey);
rsaCipher.update(in);
return rsaCipher.doFinal();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

谁能帮帮我?

谢谢!!!

最佳答案

RSA 输出不是随机的,但 PKCS1Padding 是随机的,每次都会导致不同的输出。参见 RFC 3218获取更多信息。

实际上需要随机填充来对抗攻击,攻击者可以通过加密一个消息并与他截获的加密输出进行比较来尝试猜测消息。

关于java - 用于 java 的 bouncycaSTLe 中的 RSA - 如何获得密文随机化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6054627/

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