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$的主要内容,如果未能解决你的问题,请参考以下文章
sh Ubuntu 14.04.2上的Python 2.7.9(不覆盖原始版本)