crypt在osx中​​不起作用,返回错误的值

时间:2014-08-01 11:30:58

标签: python macos hash sha crypt

我使用OSX 10.9(最新版本)和最后一个Xcode。当我执行以下命令时:

python -c 'import crypt; print crypt.crypt("test", "$6$random_salt")'

我得到了这个答案:

$6asQOJRqB1i2

但如果我在debian机器(相同版本的python)中执行相同操作,我会得到以下内容:

$6$random_salt$sJ0ZOQCUESBs9rYCOLCqGV93zg1cSDgZV/FF6ZBzpnvNUVODwaaVoPV2SiL0ur7Sexh02hMmXdSBOa216GWoh.

我的机器出了什么问题?

2 个答案:

答案 0 :(得分:2)

在Mac OS X上crypt()的实现不支持Linux glibc crypt()支持的大多数“高级”模式。它只支持“传统crypt()”,这是你在这里得到的,以及“扩展crypt()”模式,它与Linux实现不兼容。

如果您需要在Linux和Mac OS X上轻松创建强密码哈希,则需要使用crypt()以外的其他内容。

答案 1 :(得分:1)

问题似乎是在@dukswuff注释的crypt实现中。如果有人遇到同样的问题,可以在这里阅读python替代解决方案:https://stackoverflow.com/a/17992126/2208811