linux 生成hash密碼的問題

最近在看salt stack,需要批量修改用戶的密碼,在腳本中顯示你的明文密碼是不安全的,所以想使用shadow文件中的加密後密碼放在腳本里 就安全很多.


當然你也可以修改一臺機器的密碼然後把shadow裏的密碼部分摘出來,此方法不再討論之列


不是每個發行版都用相同的加密算法,先查查:

[root@localhost ~]#  authconfig --test | grep hashing
 password hashing algorithm is sha512
[root@localhost ~]#


我是centos6.2,默認加密算法是sha512


在有些系統上這個命令不能執行,那還有別的辦法:

cat 出來你的shadow文件,應該是這樣一個結構


user:$6$abcdef…


以':'分割的各個列,1列爲用戶名,2列爲密碼……其他自己查資料去

密碼部分的前3位是加密算法,後面是salt

$1$ md5

$$

$6$ sha512,

$0$ old des

$2$ blowfish

等等具體查看:

http://en.wikipedia.org/wiki/Passwd


下一步就是如何生成這個密碼了

如果你是centos或者rh就好辦了,軟件庫中已經有這個工具了mkpasswd(是在expect包中)

yum -y install expect


ok 我裝了 但是不能生成sha512的密碼 只能隨機生成指定的密碼,反正是不能用了  怒啊


好吧我們自己生成吧:)

可以使用python 或者perl

先生成salt,做飯總要先找好調料吧

openssl rand -base64 16 | tr -d '+=' | head -c 8

結果:

L0Uymjwa


下一步生成密碼,先說python

python -c "import crypt, getpass, pwd; print crypt.crypt('要設置的密碼', '\$6\$上面生成的salt\$')"


我要加密的密碼是123456

python -c "import crypt, getpass, pwd; print crypt.crypt('123456', '\$6\$L0Uymjwa\$')"

結果:

$6$L0Uymjwa$PTTwfi3DY7/tJF9oz.NlOShT.F9mfiIJuSknWNvyItMaN5Ge/91jwut2gYMthi9tpLxf/FcvC/v9Dp6jnCmpw1

可以了,你可以試試你的shadow裏的密碼是不是和這個一樣i_f01.gif


分2步還嫌麻煩,味道每次都一樣不好 擦,合起來

python -c "import crypt, getpass, pwd; print crypt.crypt('123456', '\$6\$`openssl rand -base64 16 | tr -d '+=' | head -c 8`\$')"


好了吧 滿意了吧


perl:

perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章