Python crypt.crypt 不使用 sha512 尽管 $6$

Posted

技术标签:

【中文标题】Python crypt.crypt 不使用 sha512 尽管 $6$【英文标题】:Python crypt.crypt not using sha512 despite $6$ 【发布时间】:2019-03-05 00:09:16 【问题描述】:

出于某种原因,使用crypt 模块使用13 字符散列而不是sha-512,无论我尝试什么。我见过无数关于问题的问题,但没有一个与我的相符。难道根本就没有办法改变crypt方法吗?

>>> import crypt
>>> print(crypt.crypt("password", s))
$6FMi11BJFsAc
>>> print(crypt.crypt("password", crypt.METHOD_SHA512))
$6FMi11BJFsAc
>>> 

不确定到底发生了什么。如果这是特定于案例的事情,是否有替代 crypt 具有相同 crypt(3) 功能的替代品?

提前致谢!

【问题讨论】:

您使用的是什么版本的 Python?您至少需要 Python 3.3 才能获得理解 $6$... 格式的实现,以选择不同的哈希算法。 我在 mac 上使用 python 3.6.5。 【参考方案1】:

不幸的是,这是一个 issue 在 Mac 上使用 crypt(3) 实现。有一个跨平台的 crypt 库,passlib,但似乎一年多没有收到任何更新;不过,这是 Ansible 推荐的一种方法,例如 FAQ。

【讨论】:

以上是关于Python crypt.crypt 不使用 sha512 尽管 $6$的主要内容,如果未能解决你的问题,请参考以下文章

QT加载.dll不调用resolve

利用ansible简单修改一批务器密码为统一密码

sh Ubuntu 14.04.2上的Python 2.7.9(不覆盖原始版本)

sh python - pip使用豆瓣源

关于linux系统下CRONTAB运行python脚本不生效

sh 使用requirements.txt安装Python包