gpt4 book ai didi

java - BouncyCaSTLe 是否有 SecureRandom 服务?

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

我正在尝试使用 Java 生成加密安全随机数,并使用以下代码部分创建 SecureRandom 对象以查看其提供程序和算法:

Provider prov=new org.spongycastle.jce.provider.BouncyCastleProvider();
Security.insertProviderAt(prov, 1);

SecureRandom sr=new SecureRandom();
srProvider=sr.getProvider().toString();
srAlgorithm=sr.getAlgorithm();

(海绵城堡相当于由 Roberto Tyley 制作的机器人的充气城堡 - https://github.com/rtyley)

当我显示提供商和算法时,它显示:Crypto version 1.0 SHA1PRNG

令我吃惊的是,即使它作为代码中的第一个提供程序安装,提供程序也不是 SpongycaSTLe。我想问你 a) SecureRandom 不是在 Spongy CaSTLe(或 Bouncy CaSTLe)中实现的吗? b) “加密版本 1.0”到底是什么(我的意思是它是 Sun JCE 提供者还是什么?)

谢谢...

鲁比

最佳答案

Bouncy CaSTLe 确实提供了一组随机数生成器 (PRNG)。 PRNG 有很多名称; NIST 称它们为确定性随机位生成器 (DRBG)。然而,它们仅在包 org.bouncycaSTLe.crypto.prng 中的 Bouncy CaSTLe 的“轻量级”API 中可用。

但是,Bouncy CaSTLe 是加密算法的纯软件实现。这意味着它不包含 的来源。熵不能由软件单独产生,因为软件算法本身是确定性的。因此,即使 Bouncy CaSTLe 提供者将在其 "BC" 提供者(或 Android 的 Spongy 提供者)中注册一些生成器,它仍然必须依赖与平台相同的熵源 SecureRandom 实现。

由于熵源可能是大多数性能问题的罪魁祸首,因此您不应期望 Bouncy CaSTLe 在随机数生成效率方面有奇迹。

目前 (v1.54),Bouncy CaSTLe 提供程序根本没有注册任何 SecureRandom 实现,所以就是这样。

关于java - BouncyCaSTLe 是否有 SecureRandom 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259780/

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