Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 生成隨機密碼 10 大招:從 OpenSSL 到 /dev/urandom

編輯:Linux 系統常見問題解答

Linux 提供豐富工具生成高強度隨機密碼,本文精選 10 種實用方法,涵蓋 SHA、OpenSSL、/dev/urandom、dd、date 等,適合不同場景需求。

1. SHA256 + Base64 + 日期

date +%s | sha256sum | base64 | head -c 32; echo
# 輸出範例:ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4

2. /dev/urandom 過濾可列印字元

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32}; echo
# 輸出範例:pDj0Xwz7exD_Qb5B27BwWsM1hrF3a7cJ

3. OpenSSL 內建亂數產生器

openssl rand -base64 32
# 輸出範例:rYJWqJlTLAYeX3j7nCbir20h1k/0CnqLNEuNyTScfKo=

4. tr + fold 反向處理

tr -cd '[:alnum:]' < /dev/urandom | fold -w32 | head -n1; echo
# 輸出範例:tpgudzF7sqtU4yyW2LVhmUQOZIQi87

5. strings + grep 從二進位提取字母數字

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 32 | tr -d '\n'; echo
# 輸出範例:W4v1iQtkmQ8sIDd9jxDQNpg8HPMOZ8

6. 簡化版 urandom

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c32; echo
# 輸出範例:rMDlGSPN_bm-IZVFWz9BEi0rF-jIy6gs

7. dd 讀取原始亂數再 Base64

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
# 輸出範例:9+0RUd4U3HmSdMlgD7j0sf/r09MZFDVBS28W+pO2WcA

8. 單手鍵盤密碼(左手鍵位字元)

</dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c32; echo
# 輸出範例:VTG3#TR4sAgXg3Z%##WZG4ZQ@GZ$wdqF

9. 封裝成 Bash 函數永久可用

randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16}; echo; }
# 加入 ~/.bashrc,以後直接輸入 randpw 即可生成 16 碼密碼

10. 最簡單:date 管線 md5sum 或 base64

date | md5sum
# e0d057b46a9a78346cbd94b25e574e79  -
date | base64
# MjAxNOW5tCAwN+aciCAzMeaXpSDmmJ/mnJ/lm5sgMTc6MDA6MzYgQ1NUCg==
ifconfig | md5sum
# 7c4243742aa515d45c12deca31428a95  -

依據安全性需求與環境限制挑選最適合的方法。

Copyright © Windows教程網 All Rights Reserved