KSH 密码生成器

KSH 密码生成器

如何确保生成的密码包含所有这些特殊字符:?!/=\

目前我正在使用:

pwd_usr["$i"]=`cat /dev/urandom|tr -dc "a-zA-Z0-9-_\?\!\=\/\"|fold -w 15|head -n 1`

但有些生成的密码完全不包含我想要的特殊字符。

答案1

添加一条grep命令来过滤生成的密码以查找包含特殊字符的密码:

LC_ALL=C </dev/urandom tr -cd '_a-zA-Z0-9-\?\!\=\/' | \
fold -w15 | grep '[\?\!\=\/]' | head -1

笔记:

  1. 我添加是LC_ALL=C因为,根据系统的区域设置,tr会产生错误非法字节序列如果提供二进制数据(由 /dev/urandom 生成)。

  2. cat /dev/urandom使用重定向:<file command或来代替command <file

相关内容