Windows上,從網路上可以找到免費工具來產生複雜的密碼(雖然來源可疑)。而在Linux上呢,有三種Open Source的Linux工具可以用來生成隨機且複雜的密碼,分別是pwgen、apg和openssl:
pwgen
pwgen:是一種用於生成隨機密碼的工具,可以生成包含字母、數字和符號的密碼。您可以使用以下命令安裝:
以下是Ubuntu的安裝方法:
sudo apt-get install pwgen
以下是Rocky Linux 9.2的安裝方法 (本文中,所有在Rocky Linux上的安裝方法均適用於CentOS 7/8以及RHEL):
sudo yum install epel-release -y
sudo yum install pwgen perl-Digest-SHA -y
然後,您可以使用以下命令生成一組包含 16 個字符的隨機密碼:
pwgen 16 1
pwgen的缺點在於只會出現大小寫字母和數字,不會有特殊符號。其實,這樣對大部份應用上來說已經是相當足夠了;尤其部份網路銀行或部份購物網站,密碼無法使用特殊符號,這時候完全適合使用;然而,對於一般在目前黑客到處橫行的網路環境下使用來說,的確比較容易被有心人暴力破解。
apg
apg:另一種用於生成隨機密碼的工具,可以生成包含字母、數字和符號的密碼。您可以使用以下命令安裝:
以下是Ubuntu上的安裝方式法:
sudo apt-get install apg
以下是Rocky Linux 9.2上的安裝方法:
sudo yum install apg -y
然後,您可以使用以下命令生成一組包含 16 個字符的隨機密碼:
apg -a 1 -n 1 -m 16 -x 16 -M SNCL
apg本來就是為了自動生成複雜密碼用的。上述指令的參數在此說明一下:-M可以指定產生的是什麼符號,大寫是必須有,小寫則只是可能會有。然後S代表特殊符號,N代表數字,C代表大寫,L代表小寫。-m代表最少幾個字母。-x代表最多幾個字母。-n出現幾組。-a使用的演算法。
Ubuntu版本的apg如果你什麼參數都不下,預設的輸出是六組長度不一的密碼,而且在密碼後方還註明記憶的方式:
是不是超強大的?
apg是這三者當中可以產生最混亂隨機字串的一種工具,功能最強安裝又簡單,是三種方式中我最推薦使用的。但是它的缺點是參數多,光是要記就很頭痛。然而Ubuntu版本的又更強大。建議用在需要產生複雜密碼的場合。
openssl
openssl:一種用於加密和解密資料的工具,也可以用於生成隨機密碼。您可以使用以下兩道命令中的任一種來生成一組包含 16 個字符的隨機密碼,上面那道指令可以產生含有特殊符號的;下列那道指令卻只會生成數字和a到f的小寫文字(其實就是16位元數字):
openssl rand -base64 16 | cut -c1-16
openssl rand -hex 16 | cut -c1-16
openssl在大部份的Linux/BSD都有,大概應該預設安裝就在系統中,可以說唾手可得。但是BASE64編碼方式有其限制,也就是說,可能不夠隨機,較易被破解。尤其上述的第二種產生出來的密碼,極度不安全,所以非常不建議使用。
要使用openssl產生的密碼的場合,應該是在你沒有安裝軟體的權限,又緊急需要產生密碼的情況下吧。
來個結語吧。
目前大家在用的Windows,無論是Windows 10還是Windows 11,都已經可以啟動WSL(Windows Subsystem for Linux,適用於Linux的Windows子系統)。所以,你可以從Microsoft Store上安裝Linux,比如我就裝了Ubuntu 22.04 LTS。當你如果像我一樣安裝了Linux,那麼你就可以裝上一些Linux的Open Source應用來使用,不必再被Windows的圖形界面給捆綁。像本文介紹的三種產生密碼的工具,就變成你一定會有的好工具,何不樂哉?




沒有留言:
張貼留言