2024-04-26 04:54:27 发布
网友
os.urandom或ssl.RAND_bytes:在为加密目的生成随机字节时,建议使用哪种方法?在
如果两个都不是更好的,有什么取舍和期望从每个方面的差异?在
请注意ssl.RAND_字节只存在于Python3中。在
ssl.RAND_bytes需要先设定种子才能使用。所以你不能仅仅依赖ssl.RAND_bytes。os.urandom和{}都是伪随机数生成器。PRNG是确定性的;当使用相同的数据播种时,它们将返回相同的伪随机数字节流。如果观察者不知道种子值,那么这些字节应该与真随机数没有区别。os.urandom不过,通常是使用操作系统中的熵源(重新)进行种子设定的。在
ssl.RAND_bytes
os.urandom
因此,应该优先使用os.urandom,而不是ssl.RAND_bytes。首先,它已经被植入(并且将由操作系统重新设定种子)。此外,它不需要额外依赖于SSL库。缺点可能是性能。使用os.urandom中足够大的值来使用ssl.RAND_bytes可能更快,因为os.urandom需要在任何时候检索数据时进行系统调用。在
ssl.RAND_bytes
需要先设定种子才能使用。所以你不能仅仅依赖ssl.RAND_bytes
。os.urandom
和{os.urandom
不过,通常是使用操作系统中的熵源(重新)进行种子设定的。在因此,应该优先使用
os.urandom
,而不是ssl.RAND_bytes
。首先,它已经被植入(并且将由操作系统重新设定种子)。此外,它不需要额外依赖于SSL库。缺点可能是性能。使用os.urandom
中足够大的值来使用ssl.RAND_bytes
可能更快,因为os.urandom
需要在任何时候检索数据时进行系统调用。在相关问题 更多 >
编程相关推荐