Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。
Python 3.6 是 Python 语言主要的最新版本,它增加了一个新的模块 secrets,这个模块用来产生强加密的随机数来管理一些秘密信息,例如 账号认证,令牌以及相关的私密信息。相比于默认的伪随机数产生器模块 random,Python 开发者很可能会更加喜欢 secrets 模块,因为它不仅意味着加密与安全,还可以用来做建模与仿真。
下面让我们使用一个例子说明一下,如何使用 secrets 模块来产生强加密的伪随机数和令牌。
如何使用 secrets 来产生强加密的伪随机数
首先需要载入 secrets 模块与 string 模块。然后我们产生一个由大小写字母和数字组成的字符串。现在,我们使用 secrets 模块的 choice() 方法来随机抽取字符以产生密钥。因为这个密钥是使用字母与数字的混合形式,所以人们认为这个密钥是安全的。同时也强烈推荐大家使用这种字母和数字混合的形式来保护你的密码,防止黑客的攻击。
如何使用 secrets 模块产生令牌
secrets 模块有好几种方法来产生令牌,下面简单介绍几个使用 secrets 模块产生令牌的例子来帮助理解。
token_bytes 函数来产生一个含有 n 个字节的随机字节串。当没有指定或者使用 n 的时候,程序会自动使用一个合理的默认值。在第一个例子中,没有指定字节数,因此 python 会自动选择一个合理的数。在第二个例子中,我们再次使用了 token_bytes 函数,并指定其字节数为 8。接下来的例子中使用的是 token_hex 函数来产生一个随机的十六进制的文本字符串。在最后的例子中,使用 token_urlsafe 函数来返回一个随机的 URL 安全文本字符串。人们使用 Base64 来编码文本字符串。
对于令牌,应该使用多少字节的数?
你应该使用足够多的随机字符来加密你的令牌以应对暴力攻击。 建议最少使用 32 字节(256 比特)的随机字符来保护你的令牌以防止漏洞。
Python 开发者社区将把 secrets 模块作为 Python 3.6 的一个重要补充,使用 Python 3.6 的开发者现在拥有了一个可靠的方式来产生强加密的令牌和密钥。
对于Python 3.6 添加 secrets 模块你有什么看法呢?你想尝试使用 secrets 模块来产生你的令牌和密钥吗? 请在下面的评论区分享你的观点。
英文原文:http://evontech.com/what-we-are-saying/entry/python-36-adds-new-secrets-module-for-robust-account-and-password-security.html
译者:无