Objc中的SecRandomCopyBytes提供程序(SHA1PRNG或NativePRNG)类型?

时间:2017-02-13 06:35:43

标签: ios security cryptography

请有人澄清SecRandomCopyBytes中使用的提供商类型(SHA1PRNG或NativePRNG)。提前谢谢。

1 个答案:

答案 0 :(得分:2)

SHA1PRNG和NativePRNG是随机数生成器的Java实现(或存根)。显然,Objective C中的函数不使用任何一个。

"discussion" part of the documentation of SecRandomCopyBytes读取:

  

此函数从/ dev / random读取以获取加密安全随机字节的数组。有关/ dev / random random-number生成器的更多信息,请参见random(4)的手册页。

因此,在Apple配置为完全使用NativePRNG的情况下,/dev/random会更接近。{/ p>

请注意,可以将该功能配置为使用不同的实现:

  

rng:要使用的随机数生成器对象。指定kSecRandomDefault以使用默认随机数生成器。

所以说它使用任何特定的随机数发生器已经是一个错误。