如何在 Linux 终端中生成新的随机 wpa/wap2 密钥?我尝试了 pwgen,但它没有生成十六进制值。
答案1
例如,如果您想要一个最大字符长度的密码,即 63 个字符,您可以输入以下两个命令之一:
makepasswd --chars=63
openssl rand -base64 63
更新:
自从我第一次写下这个答案以来,我发现了一个用于此目的的更好的命令:
dd if=/dev/urandom bs=48 count=1 status=none | base64 | tr +/ -_
实际上,我时常使用这个由 zenity 支持的脚本来生成这样的密码:
#!/bin/bash
RNDPWD="$(dd if=/dev/urandom bs=48 count=1 status=none | base64 | tr +/ -_)"
echo $RNDPWD | tr -d '\n' | xclip -i -selection clipboard
zenity --question --title="Random Password" --text="<i>Password Copied to Clipboard:</i>\n\n$RNDPWD\n\n<b>Would you like to generate another one?</b>" --width=500 --height=150
if [ $? = 0 ]
then
"~/.bin/Password-Generator-GUI"
fi
答案2
为了生成最佳密码(熵尽可能高),应该使用所有 ASCII 可打印字符 - 从 32(空格)到 126(波浪号、~)。这可以通过以下方式实现(例如,最大密码长度为 63 个字符):
< /dev/urandom tr -cd "[:print:]" | head -c 63; echo
为了不包含空格,可以使用[:graph:]
字符集,并且tr
手册页中还描述了其他字符集。