【发布时间】:2020-07-04 04:42:48
【问题描述】:
我正在尝试在 Windows 的 Python 中找到与 UnixCrypt 等效的函数。到目前为止,我发现 python 确实提供了crypt function,但它仅适用于 Unix 操作系统。对于 Windows 操作系统,有Cairnarvon's crypt.py 和passlib's des_crypt。举个例子,要对密码进行哈希处理,您只需将密码和盐(2 个字符的字符串)传递给函数:
from passlib import hash
import crypt as cryptC
pwd = "password"
salt = "JQ"
#Cairnarvon's crypt.py
print(cryptC.crypt(pwd,salt))
# passlib's des crypt
print(hash.des_crypt.encrypt(pwd,salt=salt))
以上两个函数都输出相同的哈希:
JQMuyS6H.AGMo
但是这并不能证明它们给出的哈希值与 UnixCrypt 或 Python 的 crypt 相同。为了确认这一点,我需要一个 unix 操作系统,但我不需要。有人可以使用上面示例中的密码和盐为我提供来自 UnixCrypt 的哈希吗?谢谢。
【问题讨论】:
-
>>> import crypt >>> crypt.crypt("password", "JQ") 'JQMuyS6H.AGMo' >>> import sys >>> sys.platform 'linux' -
6 年后回到这篇文章,却发现我只对你的回复投了赞成票,但还没有感谢你。所以感谢您花时间发布上述内容!如果您将其作为答案发布,将接受答案。 :D
-
哎呀,这是过去的爆炸!我已按要求发布了答案,但我不希望这对其他人有用。
-
确实,这不是该网站针对 IMO 的问题。无论如何,关于这个问题:当您将 crypt 导入为 cryptC 时; cryptC.crypt(...) 你只是在使用 crypt.crypt,就像我在 Linux 中那样。还是我错过了什么?顺便说一句,如果你省略了盐,crypt.crypt 将使用更强大的算法(并在检查密码时使用 crypt 的完整输出作为盐)。
标签: python encryption hash crypt