【问题标题】:python crypt equivalent for windowsWindows的python crypt等效
【发布时间】:2020-07-04 04:42:48
【问题描述】:

我正在尝试在 Windows 的 Python 中找到与 UnixCrypt 等效的函数。到目前为止,我发现 python 确实提供了crypt function,但它仅适用于 Unix 操作系统。对于 Windows 操作系统,有Cairnarvon's crypt.pypasslib'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


【解决方案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

另外,如果您可以选择算法,我建议您使用更新且速度较慢的算法,例如 PBKDF2bcrypt

【讨论】:

  • 酷。将需要检查这些算法。毕竟这段时间仍然是密码学菜鸟!
猜你喜欢
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 2013-05-05
  • 2012-10-14
  • 2012-06-09
  • 2021-08-14
  • 1970-01-01
  • 2014-06-20
相关资源
最近更新 更多