Skip to content

Password Rule Generator ​

Generate and validate passwords against a site's exact rules, entirely in the browser.

按长度、字符类别、允许符号、首尾位置、重复限制和禁止片段生成符合目标网站要求的密码。 生成、规则分析和独立合规验证全部在浏览器内完成。

为什么是“规则生成器” ​

常见生成器只切换大小写、数字和符号。本项目还支持每类字符的最少、最多与精确数量, “四类至少三类”、符号白名单、首尾字符、重复与连续序列限制,以及可操作的规则冲突诊断。 生成器与验证器是独立模块;只有通过全部验证的结果才会显示为可复制状态。

本项目不会展示伪精确的破解时间,也不会将受约束输出简单换算成一个看似精确的熵值。

本地开发 ​

需要 Node.js 22.12 或更高版本。

bash
npm ci
npm run dev

项目站部署在 /password-generator/,本地开发地址由 Vite 输出。生产预览使用:

bash
npm run build
npm run preview

验证 ​

bash
npm run format:check
npm run lint
npm run typecheck
npm run test
npm run build
npm run audit:dist
npx playwright install
npm run test:e2e

audit:dist 检查项目路径、CSP、canonical、外部脚本/样式/字体、统计域名、source map、 Math.random()、开发日志、测试密码和 gzip 预算。CI 和 Pages Actions 均锁定到具体提交。

隐私 ​

密码只存在于当前页面内存中,不会写入 Storage、IndexedDB、Cookie、URL、页面标题、日志、 预设或网络。禁止片段同样是临时数据,保存预设时会被丢弃。页面进入后台后自动遮挡密码; 返回前台不会自动恢复显示。

页面资源加载结束后,应用不主动发起任何网络请求。没有外部字体、CDN、分析、遥测、在线 随机服务或 Service Worker。复制只发生在用户点击复制按钮时;应用不读取或自动清空剪贴板。

这些边界无法阻止恶意浏览器扩展、受感染的设备或系统剪贴板工具读取页面内容。详情见 SECURITY.md。

外观与部署 ​

应用与 Qrzzzz 主站共享 vitepress-theme-appearance 本地键,支持 auto、light 和 dark。 主题在 React 挂载前由本地 theme-init.js 应用。设计令牌的来源和同步提交记录在 THEME-SOURCE.md,运行时不会加载主站 CSS。

GitHub Pages 由 Actions 发布 dist/,不维护 gh-pages 分支,也不提交构建产物。

许可证 ​

MIT

Cherry Chu · Projects, notes, and working documentation.