Bor*_*rja 6 python md5 salt sha sha512
我试图理解Linux如何在etc/shadow文件上加密我们的密码,所以我没有新的虚拟"测试"用户进行一些测试:
user: newuser
密码: usrpw123
生成的盐: Ii4CGbr7
操作系统在etc/shadow文件中使用SHA512加密系统($ 6 $)使我成为以下行: newuser:$ 6 $ Ii4CGbr7 $ IOua8/oPV79Yp.BwzpxlSHjmCvRfTomZ.bhEvjZVxxxqvv82lZVrEtWQQej2pOWMdN7hvKwNgvCXKFQm5CB /:15069:0:99999:7 :::
现在,我从python中获取SHA512模块并试试这个:
import hashlib
m = hashlib.sha512()
m.update('Ii4CGbr7'+'usrpw123')
print m.hexdigest
Run Code Online (Sandbox Code Playgroud)
这给了我以下哈希作为结果: c73156daca3e31125ce457f1343201cc8a26400b2974440af2cc72687922b48b6631d21c186796ea2756ad987a996d2b261fe9ff3af4cc81e14c3029eac5df55
正如你所看到的,它与/ etc/shadow文件中的另一个不同,我不知道为什么我使用相同的salt +密码来生成哈希.
有人能帮我一把,或多或少解释一下为什么会这样吗?
而且,为什么/ etc/shadow文件生成带有一些点(.)的哈希?
谢谢
有一种算法可以生成/ etc/shadow中的密码哈希值.
请参阅此文档以获取解释:http:
//www.akkadia.org/drepper/SHA-crypt.txt
这里有python的实现:http:
//packages.python.org/passlib/lib/passlib.hash.sha512_crypt.html