Java 9 (JSR 379)引入了JEP 273中指定的 NIST DRBG。然而,NIST 文档SP 800-90Ar1(NIST Special Publication 800-90A Revision 1: Recommendation for Random Number Generation Using Deterministic Random Bit Generators)指定了树机制的总数:
在 800-90Ar1(所有平台)中实现三种 DRBG 机制(Hash_DRBG、HMAC_DRBG、CTR_DRBG)。
但是,尽管您可能期望我们现在可以使用三种方法来创建此类安全随机算法:
SecureRandom.getInstance("Hash_DRBG")
SecureRandom.getInstance("HMAC_DRBG")
SecureRandom.getInstance("CTR_DRBG")
可能有各种配置参数,我们似乎只有一个:
SecureRandom.getInstance("DRBG")
那么开发者如何配置和检测使用了哪一种算法呢?