Python对Crypt函数的使用

Python对Crypt函数的使用,python,function,hash,crypt,Python,Function,Hash,Crypt,如何在Python3中实现crypt选项 我理解其用途是: Hash = crypt.crypt(password, salt) 但是,该函数有一组不同的哈希函数。从文件中: crypt.METHOD_SHA512 一种具有16个字符salt和86个字符哈希的模块化加密格式方法。这是最有力的方法 crypt.METHOD\u SHA256另一种模块化加密格式方法,16 字符salt和43字符散列 crypt.METHOD\u MD5另一个8字符的模块化加密格式方法 salt和22个字符的散列

如何在Python3中实现crypt选项

我理解其用途是:

Hash = crypt.crypt(password, salt)
但是,该函数有一组不同的哈希函数。从文件中:

crypt.METHOD_SHA512 一种具有16个字符salt和86个字符哈希的模块化加密格式方法。这是最有力的方法

crypt.METHOD\u SHA256另一种模块化加密格式方法,16 字符salt和43字符散列

crypt.METHOD\u MD5另一个8字符的模块化加密格式方法 salt和22个字符的散列

crypt.METHOD\用2个字符的salt和 散列的13个字符。这是最薄弱的方法

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


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

你把这个方法作为盐论点通过。从:

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

例如:

crypt.crypt("password", crypt.METHOD_SHA512)
在引擎盖下变成:

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

使用bash:$
python3-c“导入crypt;打印(crypt.crypt('password','\$6\$saltstring')”

$6$用于SHA512,如果使用类似于我的bash终端,则必须通过转义$来转义。

改编自和@Leonard_Saracini应答(删除反斜杠使其成为一行):


这是从2018年8月起就应该安全的。

谢谢!但是我可以指定流程吗?也就是说,我可以使用SHA512,但我可以自己提供盐吗?
python3 -c 'import crypt,getpass,sys; \
print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'