在Linux下產生crypt加密密碼的方法

來源:互聯網
上載者:User

   我們可以用mkpasswd命令:這個命令就是用來產生crypt格式的密碼的:

  mkpasswd

  輸入命令後,程式會要求輸入一個密碼,然後產生crypt格式的字串。

  如果用Apache Web伺服器,那麼也可以用htpasswd:

  htpasswd -nd user

  使用者名稱(user)叫什麼都無所謂,我們關注的是密碼。這個命令會輸出一個user:password格式的字串,直接把password欄位複製下來就ok了。

  有OpenSSL的話,可以使用openssl命令:

  openssl passwd -crypt myPassword

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

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

  不過這個問題是有解決辦法的:用指令碼,或者語言解譯器。

  比如使用Perl:

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

  Perl需要一個加密鹽,如這裡使用了sa(salt指加密中用到的隨機字串,用不同的salt可以產生不同的加密結果)。

  Ruby也一樣需要加密鹽:

  ruby -e 'print "password".crypt("JU"); print("n");'

  PHP也可以:

  php -r "print(crypt('password','JU') . "n");"

  需要注意的是,如果不使用加密鹽(如上面命令中的JU),那麼輸出的字串將不是crypt加密格式,而是MD5加密格式的。所以,加密鹽其實是必須的參數。

  Python需要匯入crypt庫並使用加密鹽:

  python -c 'import crypt; print crypt.crypt("password","Fx")'

  這裡的加密鹽是Fx。

  資料庫也可以產生crypt密碼。比如用MySQL:

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

  另外,Tcl,Ubuntu下的trf,還有Lua的lua-crypt外掛程式也可以實現相同的目的。

  歡迎補充其他的方式!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.