在 Linux Bash 中生成 WPA/WPA2 密钥?

在 Linux Bash 中生成 WPA/WPA2 密钥?

如何在 Linux 终端中生成新的随机 wpa/wap2 密钥?我尝试了 pwgen,但它没有生成十六进制值。

答案1

例如,如果您想要一个最大字符长度的密码,即 63 个字符,您可以输入以下两个命令之一:

  1. makepasswd --chars=63

  2. 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手册页中还描述了其他字符集。

相关内容