use*_*482 5 python hash crypt sha512 osx-yosemite
我正在尝试生成加密的密码字符串,类似于 Linux 中的 /etc/shadow。出于某种原因,我得到的输出是不同的。任何想法我错过了什么,一个比另一个长(不计算盐部分)?
#!/usr/bin/python
import crypt
alg = 6 # SHA512
salt = 'vb1tLY1qiY'
word = 'password'
insalt = '${}${}$'.format(alg, salt)
cryptWord = crypt.crypt(word, insalt)
print cryptWord
Run Code Online (Sandbox Code Playgroud)
输出是: $6FMi11BJFsAc
如果我像这样在 Linux 中生成它:
mkpasswd --method=sha-512 --salt=vb1tLY1qiY password
Run Code Online (Sandbox Code Playgroud)
输出是: $6$vb1tLY1qiY$WFHTa6CRShEuKg63vuPTYOVRK1oQiM6johIEs2JslF1904VhEdSXlHje74eB4uLXHrKNyZ4bPjSlWpZD6qIo71
小智 0
我能够使用 passlib。它不是作为 python 的一部分安装的(至少在 OS X 上),但是您可以通过 pip 安装它。
sudo easy_install pip
pip install passlib
python -c "from passlib.hash import sha512_crypt; import getpass,string,random; print sha512_crypt.using(salt=''.join([random.choice(string.ascii_letters + string.digits) for _ in range(16)]),rounds=5000).hash(getpass.getpass())"
Run Code Online (Sandbox Code Playgroud)
https://gist.github.com/hbeatty/25db5847e7068335681db88248d0deaf