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