使用Python进行密码散列会在Solaris 10和Solaris上产生奇怪的结果。 11

时间:2013-08-16 09:49:37

标签: python solaris

使用a serverfault submission的答案我为/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$

任何人都可以解释一下吗?

2 个答案:

答案 0 :(得分:1)

Crypt是一个使哈希与系统一致的函数。

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

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

答案 1 :(得分:0)

crypt module仅适用于Unix。

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

尝试以下命令来告知crypt模块的来源:

python -c 'import crypt; print crypt.__file__'