1

使用来自serverfault 提交的答案,我为 生成了密码哈希/etc/shadow,但是在 Windows (Cygwin) 或 Mac 上的结果:

mistral.local:~(16)+>- python -c 'import crypt; print crypt.crypt("test","$6$randomsalt")'
$6asQOJRqB1i2
mistral.local:~(17)+>-

与 Solaris 10 和 11 上的非常不同:

pkearns@solaris11:~/tmp$ python -c 'import crypt; print crypt.crypt("test","$6$randomsalt")'
$6$randomsalt$gZCCiaoqM7ivJDVPx3T4hr23J7WDQjneAucycYvJeMoBZHAx9bx8y2pUL.hE2MhbSRcgTjEE9klIhBq1WF8Pa1
pkearns@solaris11:~/tmp$

谁能解释一下?

4

2 回答 2

1

crypt是一个使hash与系统一致的函数。

我不确定 Mac 和 Windows,但在 linux 系统上它是修改后的 DES,对于 Solaris,它是可插入算法,建议使用 SHA-256 或 SHA-512。

如果您需要为您的软件制作密码哈希 - 您最好使用 hashlib。

于 2013-08-16T10:12:02.360 回答
0

crypt 模块仅在 Unix 中可用。

也许您在系统中使用自己的 crypt 版本。

尝试以下命令来判断 crypt 模块的来源:

python -c 'import crypt; print crypt.__file__'
于 2013-08-16T10:07:34.627 回答