SKILL.md
2.8 KB查看排版效果| 1 | --- |
| 2 | name: password-generator-20261103 |
| 3 | description: 本地离线随机密码生成器,按指定长度和字符集(大小写字母、数字、特殊符号)生成密码学安全的高强度随机密码,支持批量生成、排除易混淆字符、保证每类字符至少出现一次,全程不联网。 |
| 4 | --- |
| 5 | |
| 6 | # 随机密码生成器 |
| 7 | |
| 8 | 本技能是一个**纯本地、离线**的随机密码生成工具: |
| 9 | |
| 10 | - **能做什么**:按自定义长度、字符集和数量生成随机密码;可排除易混淆字符(0/O、1/l/I 等);可保证每个启用的字符集至少出现一个字符; |
| 11 | - **带不带脚本**:带一个 PowerShell 脚本 `scripts/New-Password.ps1`,仅依赖 .NET 自带的加密随机数生成器,无需安装任何第三方模块; |
| 12 | - **联不联网**:**不联网**,不发起任何网络请求; |
| 13 | - **写不写文件**:默认只把密码输出到屏幕;只有显式传入 `-OutFile` 参数时才会写入文本文件。 |
| 14 | |
| 15 | ## 适用场景 |
| 16 | |
| 17 | - 为新账号、服务器、数据库或 API 密钥生成强密码; |
| 18 | - 批量生成临时密码或初始口令; |
| 19 | - 满足"长度 ≥ N 且同时包含大小写字母、数字、符号"的密码策略。 |
| 20 | |
| 21 | ## 使用方法 |
| 22 | |
| 23 | 在技能目录下打开 PowerShell: |
| 24 | |
| 25 | ```powershell |
| 26 | # 生成 1 个 16 位密码(默认) |
| 27 | powershell -ExecutionPolicy Bypass -File .\scripts\New-Password.ps1 |
| 28 | |
| 29 | # 生成 3 个 20 位密码 |
| 30 | .\scripts\New-Password.ps1 -Length 20 -Count 3 |
| 31 | |
| 32 | # 不含特殊符号,并排除易混淆字符 |
| 33 | .\scripts\New-Password.ps1 -Length 24 -NoSymbols -ExcludeAmbiguous |
| 34 | |
| 35 | # 仅数字(如生成 6 位数字口令) |
| 36 | .\scripts\New-Password.ps1 -Length 6 -NoLowercase -NoUppercase -NoSymbols |
| 37 | |
| 38 | # 写入文件(UTF-8 无 BOM) |
| 39 | .\scripts\New-Password.ps1 -Count 5 -OutFile .\passwords.txt |
| 40 | ``` |
| 41 | |
| 42 | ## 参数说明 |
| 43 | |
| 44 | | 参数 | 说明 | 默认值 | |
| 45 | |---|---|---| |
| 46 | | `-Length` | 密码长度,范围 4~128 | 16 | |
| 47 | | `-Count` | 生成条数,范围 1~100 | 1 | |
| 48 | | `-ExcludeAmbiguous` | 排除易混淆字符:`0 O o 1 l I | ` ' "` | 关闭 | |
| 49 | | `-NoLowercase` | 不使用小写字母 | 关闭 | |
| 50 | | `-NoUppercase` | 不使用大写字母 | 关闭 | |
| 51 | | `-NoDigits` | 不使用数字 | 关闭 | |
| 52 | | `-NoSymbols` | 不使用特殊符号 | 关闭 | |
| 53 | | `-OutFile` | 结果写入指定文件;不传则只输出到屏幕 | 空 | |
| 54 | |
| 55 | ## 实现要点 |
| 56 | |
| 57 | - 随机源为 `System.Security.Cryptography.RandomNumberGenerator`(密码学安全),不使用 `Get-Random`; |
| 58 | - 采用拒绝采样消除取模偏差,每个字符被选中的概率相等; |
| 59 | - 当长度不小于启用字符集数量时,先从每个字符集各取一个字符,再用 Fisher-Yates 洗牌,保证字符类别齐全且位置随机; |
| 60 | - 兼容 Windows PowerShell 5.1 与 PowerShell 7+。 |
| 61 | |
| 62 | ## 安全提示 |
| 63 | |
| 64 | 生成的密码属于敏感信息,使用 `-OutFile` 时请妥善保管输出文件,不要把它提交到代码仓库或通过不安全渠道传输。 |
文件内容是平台检查时读出的文本,只供查看。平台不会运行包里的任何脚本或程序。

