我正在尝试在Python for Windows中找到与UnixCrypt等效的函数。到目前为止我发现的是python确实提供了crypt function,但它只适用于Unix操作系统。对于Windows操作系统,有Cairnarvon's crypt.py和passlib's des_crypt。所以,举个例子,要对密码进行哈希处理,你只需要将密码和salt(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操作系统,但我不知道。有人可以在上面的例子中使用密码和salt为我提供来自UnixCrypt的哈希吗?感谢。
答案 0 :(得分:1)
根据要求:
Python 3.8.3 (default, May 17 2020, 18:15:42)
[GCC 10.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt
>>> crypt.crypt("password", "JQ")
'JQMuyS6H.AGMo'
$ uname -ampo
Linux matthew-laptop 5.7.6-arch1-1 #1 SMP PREEMPT Thu, 25 Jun 2020 00:14:47 +0000 x86_64 GNU/Linux