如何使用/dev/urandom生成符合Windows 10要求的可指定长度密码
符合Windows 10复杂度要求的密码生成命令方案
核心实现思路
- 强制从大写字母、小写字母、数字、特殊字符4类字符中各取1个,确保满足至少3类的Win10复杂度要求,比规则要求更严谨
- 剩余长度的字符从全字符池中随机抽取,总长度支持自定义
- 所有随机操作均使用
/dev/urandom作为数据源,生成后打乱字符顺序避免规律
可用命令
修改LEN变量的值即可自定义密码长度,示例中为10位,建议设置≥7(符合Windows默认最小密码长度要求)
# 自定义密码长度 LEN=10 # 生成密码 { < /dev/urandom tr -dc 'a-z' | head -c1; \ < /dev/urandom tr -dc 'A-Z' | head -c1; \ < /dev/urandom tr -dc '0-9' | head -c1; \ < /dev/urandom tr -dc '/*#' | head -c1; \ < /dev/urandom tr -dc 'a-zA-Z0-9/*#' | head -c $((LEN-4)); } | \ fold -w1 | shuf --random-source=/dev/urandom | tr -d '\n'
命令说明
- 大括号内的前4条命令分别从四类字符中各随机取1个字符,强制覆盖多类字符要求
- 第5条命令补齐剩余长度的随机字符,总长度为
LEN的设定值 fold -w1将所有字符拆分为单行单个,便于打乱顺序shuf使用/dev/urandom作为随机源混洗字符,避免前4个字符的类型顺序固定- 最后删除换行符输出连续的密码字符串
内容的提问来源于stack exchange,提问作者Shaun Croucher
相关产品推荐
相关产品推荐

