密码生成器
【摘要】 作品简介:密码生成器,基于Web Crypto生成随机强密码,字符集可定制、强度实时评估、历史本地保存。密码生成器项目简介密码生成器是一款基于 Web Crypto 的纯前端密码工具。打开页面即可获得一串安全随机密码:字符集、长度自由定制,生成时保证勾选的每种字符类型至少出现一次;熵值引擎实时评估密码强度并给出四档评级;最近 30 条生成记录保存在浏览器本地,支持一键复制与删除。整个应用由单...

密码生成器
项目简介
密码生成器是一款基于 Web Crypto 的纯前端密码工具。打开页面即可获得一串安全随机密码:字符集、长度自由定制,生成时保证勾选的每种字符类型至少出现一次;熵值引擎实时评估密码强度并给出四档评级;最近 30 条生成记录保存在浏览器本地,支持一键复制与删除。
整个应用由单个 HTML 文件承载,零依赖、零后端,打开即用。
核心功能
- Web Crypto 安全随机:基于 crypto.getRandomValues 生成真随机字节,替代脆弱的 Math.random()。
- 字符集自由组合:大写字母、小写字母、数字、符号四种字符集可任意勾选,并保证每种勾选类型至少出现一位。
- 长度可调:6–64 位滑杆调节,实时显示当前长度。
- 排除易混淆字符:一键剔除 0O1lI、反引号、竖线等视觉上难以区分的字符。
- 强度实时评估:以信息熵为核心指标,划分弱 / 中 / 良好 / 很强四档,并以彩色强度条可视化。
- 生成历史:最近 30 条记录 localStorage 本地保存,每条可单独复制或删除,支持一键清空。
技术架构
应用采用「参数设置层 → 随机生成核心层 → 展示与持久化层」的简洁三层结构,全部运行在浏览器端,无后端依赖。
- 参数设置层:长度滑杆、字符集勾选、排除易混淆开关等控件统一收集配置,任何变化即时触发重新评估当前密码。
- 随机生成核心层:随机生成模块先从各勾选字符集各取一位保证覆盖,再组合填充至目标长度,最后用 Fisher–Yates 洗牌打乱顺序;强度评估模块按字符池大小与长度计算信息熵。
- 展示与持久化层:密码展示框、强度条、生成历史列表统一重绘;历史记录经 localStorage 保存,刷新不丢失。
核心逻辑说明
随机源:每个随机索引都来自 crypto.getRandomValues(new Uint32Array(1))[0] % setSize,由浏览器密码学安全随机数发生器提供,避免可预测性。
保证覆盖:生成时先从每种已勾选字符集中各取一个随机字符放入待选数组,再从合并后的字符池填充剩余位置,最后洗牌打乱——既保证复杂度,又消除「某类字符缺失」的结构化弱点。
洗牌算法:对目标数组执行 Fisher–Yates 原地洗牌,从末位向前逐位与随机下标交换,每个排列等概率出现,配合安全随机源保证不可预测。
熵值评估:以 长度 × log2(字符池大小) 估算理论熵,并依据实际使用字符集的丰富度做轻微折扣,映射到弱(<45 bit)、中(<70 bit)、良好(<100 bit)、很强(≥100 bit)四档评级。
技术栈
| 技术 | 用途 |
|---|---|
| HTML5 | 页面结构 |
| CSS3 | 卡片式布局、强度条动效、响应式设计 |
| 原生 JavaScript | Web Crypto API、Fisher–Yates 洗牌、熵值评估 |
| localStorage | 生成历史持久化 |
| Clipboard API | 密码一键复制 |
使用方式
直接用浏览器打开 index.html 即可使用;也可通过任意静态文件服务器托管后访问。
项目地址:开发者作品展览馆
亮点与价值
- 零依赖、开箱即用:单个 HTML 文件承载全部能力,部署只需一个静态服务器。
- 密码学安全:真随机源 + 覆盖保证 + 均匀洗牌,生成过程本身没有可预测弱点。
- 隐私友好:密码全程在浏览器本地生成与保存,不经过任何网络传输。
- 实用细节:易混淆字符排除、强度评级、历史复制删除,覆盖日常设密常见需求。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)