Crypt函数的Python用法

时间:2017-01-27 05:30:35

标签: python function hash crypt

如何在Python 3中实现crypt选项?

我知道使用的是:

Hash = crypt.crypt(password, salt)

但是,该函数具有一组不同的散列函数。来自文档:

  

crypt.METHOD_SHA512   模块化加密格式方法,包含16个字符的盐和86个字符的哈希值。这是最强的方法。

     

crypt.METHOD_SHA256另一种带有16的模块化加密格式方法   字符盐和43个字符哈希。

     

crypt.METHOD_MD5具有8个字符的另一个模块化加密格式方法   盐和22个字符哈希。

     

crypt.METHOD_CRYPT传统的方法,使用2个字符的盐和   哈希的13个字符。这是最弱的方法。

我的问题是如何选择函数使用的算法?

这是一个非常基本的问题,我无法相信我自己找不到答案 - 如果我浪费你的时间,我道歉。

3 个答案:

答案 0 :(得分:1)

您将该方法作为salt参数传递。来自crypt function docstring

  

如果未指定saltNone,则最强   将选择可用的方法并生成盐。除此以外,   salt可以是crypt.METHOD_*值之一,也可以是字符串   由crypt.mksalt()返回。

例如:

crypt.crypt("password", crypt.METHOD_SHA512)

引人注目的是:

crypt.crypt("password", crypt.mksalt(crypt.METHOD_SHA512))

答案 1 :(得分:1)

使用bash:$ OverlayConfig

$ 6 $用于SHA512,如果您使用像我这样的bash终端,则$必须用\转义。

答案 2 :(得分:0)

Red Hat solution和@Leonard_Saracini答案中改编而成(删除反斜杠以使其成为一体):

python3 -c 'import crypt,getpass,sys; \
print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'

从2018年8月开始,这应该是安全的。