Java的KeyGenerator随机在默认情况下是安全的吗?



以下行通过JDK的KeyGenerator生成SHA512秘密。

SecretKey secretKey = KeyGenerator.getInstance("HmacSHA512").generateKey();

我想知道关键是随机安全的吗?

或,在生成密钥之前,我应该明确地使用SecureRandom实例来启动生成器?

仅为完整性,您可以使用512位的密钥大小调用init方法。但是,HMAC的默认密钥大小与输出相同。因此,从这个意义上说,假设此密钥大小默认设置为非常合理。确实,应避免使用常数值调用init方法。

至于实现,如果您不明确调用init方法,则假定默认值并选择SecureRandom实例。但是,从某种意义上说,您是正确的,这是逻辑提供商默认值。应该为所有提供商指定

KeyGeneratorCore中发生的事情是一些想法。所有提供商的代码都在线,因此没有发现看起来不够深刻,尽管诚然,您需要一些Google foo才能找到它。

相关内容

  • 没有找到相关文章

最新更新