- 使用dd命令截取/dev/urandom
dd if=/dev/urandom bs=1 count=20 2>/dev/null|base64|rev|cut --bytes 3-|rev
- 生成10個小寫字母
< /dev/urandom tr -dc [a-z] | head --bytes 10;echo
- 生成10個大寫字母
< /dev/urandom tr -dc [A-Z] | head --bytes 10;echo
- 生成10個數字
< /dev/urandom tr -dc [:digit:] | head --bytes 10;echo
- 利用時間和散列函數
date +%s | sha256sum | base64 | head --bytes 10;echo
- openssl rand子命令
openssl rand 產生的是隨機bytes字節,直接輸出會亂碼,故用base64或hex編碼
openssl rand -hex 6 openssl rand -base64 6
使用base64編碼可能會有 / + = 等特殊字符
- 結合fold命令
tr -dc [:digit:] < /dev/urandom | fold --width 10 | head -1
- 使用strings提取ASCII字符
strings /dev/urandom | grep -o '[[:digit:]]' | head -10 | tr -d '\n';echo