Python对Crypt函数的使用
如何在Python3中实现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个字符的散列
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)))'