1
fucker OP 上面说错了,不是说python不支持sha,说的是crypt。。。。
附一段测试代码 import crypt print crypt.crypt("123456","$6$abcdabcd") 在mac下生成的貌似是des 在ubuntu下生成的是带盐值由$隔开的sha512 |
2
a2z 2014-02-19 18:27:47 +08:00
python里的crypt是调用操作系统的glibc,mac osx里系统的crypt只有des一种加密方式。
我建议你用hashlib。 |
3
fucker OP @a2z 明白了,mac os底层本身就是unix,而我之前在hpux,bsd上面观察passwd文件确实也只有des加密的密码。我去用hashlib试试,非常感谢!
|
4
lwjef 2014-02-19 18:43:27 +08:00
|
6
lwjef 2014-02-19 18:53:32 +08:00
这网页上不是有吗。
passlib.hash.sha512_crypt |
8
lwjef 2014-02-19 19:11:54 +08:00
from passlib.hash import sha512_crypt; print sha512_crypt.encrypt("123456",rounds=5000,salt="abcdabcd")
https://github.com/lattera/glibc/blob/master/crypt/sha256-crypt.c#L88 |
9
lwjef 2014-02-19 19:13:32 +08:00
passlib.hash.sha512_crypt
这个不对,要改正下。 |
10
fucker OP @lwjef 没错,我刚才也发现这个问题了,然后修改passlib源代码,把rounds最小值改成1,然后range(1,100000)开始算rounds值,算到5000了。。如果不是顺手过来刷新了一下,还没发现你找到了符合我要求的rounds值!真是非常感谢!!
|