首頁 > 軟體

Unix下生成隨機複雜密碼的三種方法

2020-06-16 17:21:05

最近有人問我怎麼樣在對Unix系統中的密碼做設定,當時就隨口說直接在鍵盤上隨便按一通就可以了,當然如果是業務需求不是非常嚴格的情況下當然這樣也行,但是如果要求是需要一個非常長的、限定長度的亂數密碼就有點不行了,那麼我們就可以藉助系統中常用的工具實現亂數密碼的設定,當然實際生產的方法很多,在這裡就簡單的說一下常用的幾種方法:

一、使用有輸出指令通過計算 md5 值,然後擷取其中的一部分當做隨機密碼,這種方法使用的指令可以使用date、uptime等等有數位英文輸出指令,所以直接echo "passwd123456"單詞也行,缺點就是生成密碼全部是小寫+數位的安全性一般,方法如下:

[root@linuxidc ~]# date | md5sum | cut -b 1-10
ac404a8128
#這裡以date指令為例,擷取1~10位生成的10位亂數密碼

二、使用mysql生成41位的十六進位制密碼,這個是通過mysql的雜湊演算法算出來,這個一般用於mysql的使用者密碼設定時使用,缺點是這種方法要依賴於mysql資料庫,方法如下:

mysql> select password('password');
+-------------------------------------------+
| password('password')                      |
+-------------------------------------------+
| *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-------------------------------------------+
1 row in set (0.00 sec)

三、使用oenssl生成的亂數再用base64編碼加密,這種方法比較常用,因為一般生成的密碼有大小寫英文、數位、特殊符號,這個方法需要系統中有安裝openssl,一般使用yum就可以安裝了,方法如下:

[root@linuxidc ~]# openssl rand -base64 10
gIfIuLvIeZk+tw==
#生成10位的亂數密碼

當然在實際生產環境中可以根據不同的情況做選擇,當然如果需要強密碼一般推薦使用第三種方法

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-02/140860.htm


IT145.com E-mail:sddin#qq.com