使用会话变量是否安全,如下所示:
base64.b64encode(os.urandom(256))
据说 urandom
提供了良好的随机性。 base64
然后只编码此字符串。这种论证是否正确,因此该方法是否安全?
@Qiau指出,os.urandom
取决于操作系统的实现。就我而言(该脚本在Google App Engine
上运行),此接缝可以安全使用(see Google Groups post)。
答案 0 :(得分:1)
是。那是正确的。 base64只对字符串进行编码。
来自文档:
,对于加密应用程序应该是不可预测的urandom的(...)
urandom(n) -> str Return n random bytes suitable for cryptographic use.
b64encode(s,altchars = None)
Encode a string using Base64.
此函数返回来自OS特定随机源的随机字节。对于加密应用程序,返回的数据应该是不可预测的,尽管其确切的质量取决于操作系统的实现。在类UNIX系统上,这将查询/ dev / urandom,在Windows上它将使用CryptGenRandom()。如果未找到随机源,则将引发NotImplementedError。