crypt加密密碼生成小技巧

crypt是個(gè)密碼加密函數(shù),它是基於Data Encryption Standard(DES)演算法。 crypt命令加密生成的密碼格式主要應(yīng)用于紅帽Kickstart腳本或useradd或其他方式寫東西時(shí)。那么,有沒有其他方式可以生成這種格式的密碼?答案是肯定的,今天我就給大家介紹幾種。

一、用mkpasswd命令生成crypt加密密碼:

這個(gè)命令就是用來生成crypt格式的密碼的:

mkpasswd

輸入命令后,程序會(huì)要求輸入一個(gè)密碼,然后生成crypt格式的字符串。

二、Apache Web服務(wù)器,可以用htpasswd命令生成crypt加密密碼:

htpasswd -nd user

用戶名(user)叫什么都無所謂,我們關(guān)注的是密碼。這個(gè)命令會(huì)輸出一個(gè)user:password格式的字符串,直接把password字段復(fù)制下來就ok了。

三、有OpenSSL的話,可以使用openssl命令生成crypt加密密碼:

openssl passwd -crypt myPassword

把上面命令中的myPassword用你想用的密碼字符串代替。

四、數(shù)據(jù)庫也可以生成crypt加密密碼:

比如用MySQL:

  echo "select encrypt('password');" | mysql

另外,Tcl,Ubuntu下的trf,還有Lua的lua-crypt插件也可以實(shí)現(xiàn)相同的目的。

其他還有一些需要把命令在命令行中直接輸入的方式,不過這種做法有個(gè)問題,就是在ps命令中可以看到密碼,同時(shí)密碼也會(huì)被記錄入shell歷史。

不過這個(gè)問題是有解決辦法的:用腳本,或者語言解釋器。

比如使用Perl:

  perl -e "print crypt('password','sa');"

Perl需要一個(gè)加密鹽,如這里使用了sa(salt指加密中用到的隨機(jī)字符串,用不同的salt可以生成不同的加密結(jié)果)。

如果大家還有什么可以生成crypt加密密碼的方法,不妨也可以推薦一下。

小知識(shí)之加密鹽:

加密鹽是在用單項(xiàng)函數(shù)加密前,將一根字符串加到密碼上,可以用來保護(hù)密碼。