Mac终端可用openssl rand一行生成高强度随机密码:如openssl rand -base64 12输出约16字符Base64密码;推荐用openssl rand -base64 32 | tr -d '+/=' | tr '0O1lI' 'aAbBc' | cut -c1-20生成20位无歧义纯字母数字密码。

你需要在Mac终端里不依赖网页、不安装第三方软件,直接用系统自带工具生成高强度随机密码,用于登录账户、API密钥或临时凭证。
用openssl rand一行生成基础随机密码
打开终端,输入:
openssl rand -base64 12
这会输出约16个字符的Base64编码字符串,含大小写字母、数字和+/=符号。=是填充符,可安全忽略或手动删掉。
注意:-base64后面的数字是原始字节数,不是最终密码长度。12字节→Base64后≈16字符;想精确控制位数,不能直接改这个数。
过滤易混淆字符并定制长度(推荐方案)
方法一:生成后截取+清洗(最稳妥)
openssl rand -base64 32 | tr -d '+/=' | tr '0O1lI' 'aAbBc' | cut -c1-20
这一步先剔除Base64特殊符号,再把视觉易混字符(0/O/1/l/I)替换成安全替代,最后用cut精确截取前20位。全程无填充符干扰,输出纯字母数字,兼容所有系统。
方法二:用函数封装成genpass命令
编辑~/.zshrc:nano ~/.zshrc
在文件末尾添加:
genpass() { local len=${1:-16}; openssl rand -base64 $((len * 3 / 4 + 2)) | tr -dc 'A-Za-z0-9' | fold -w$len | head -n1; }
保存后运行source ~/.zshrc,之后输入genpass 24即可生成24位纯字母数字密码。函数内部自动估算字节数并过滤不可见字符,避免截断时丢失熵值。
生成带符号的高熵密码(适用于支持特殊字符的场景)
第一步:生成32字节原始随机数据 →
第二步:用base64编码 →
第三步:保留所有Base64字符(含+/=),但用sed删掉末尾的=填充符 →
第四步:用fold -w20截出首行20字符
完整命令:
openssl rand -base64 32 | sed 's/=$//' | fold -w20 | head -n1
这能保留+和/符号,适合允许这些字符的密码策略。注意某些老旧系统可能不支持/作为密码字符,【使用前务必确认目标系统允许的字符集】。
















