https://github.com/beiyanyunyi/whatsmypassword
用一个主密码和与网站对应的副密码来做到“一个网站一个密码”
https://github.com/beiyanyunyi/whatsmypassword
password-generator solid-js solidjs tailwindcss web-cryptography-api
Last synced: about 1 month ago
JSON representation
用一个主密码和与网站对应的副密码来做到“一个网站一个密码”
- Host: GitHub
- URL: https://github.com/beiyanyunyi/whatsmypassword
- Owner: BeiyanYunyi
- License: agpl-3.0
- Created: 2022-06-14T11:17:58.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-05-11T05:47:58.000Z (about 3 years ago)
- Last Synced: 2025-01-11T23:32:11.366Z (over 1 year ago)
- Topics: password-generator, solid-js, solidjs, tailwindcss, web-cryptography-api
- Language: TypeScript
- Homepage: https://wmpwd.penclub.club
- Size: 272 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🔐 我的密码是什么
用一个主密码和与网站对应的副密码来做到“一个网站一个密码”。
## ✨ 特性
- 不与任何服务器通信(对于部署在 Pages 上的本示例站并不严格成立,因为 Cloudflare 会插入一个统计脚本),密码生成全程由浏览器进行
- 使用浏览器自带 Crypto API
- 使用 PBKDF2 算法
- 使用 solidjs 作为前端框架
- 使用 windicss
- 使用 Service Worker,是 PWA
## ⚛ 原理
通过 PBKDF2 算法迭代 1048576 次,以主密码为输入,使用 SHA-512 生成一个哈希值,使用 HMAC 对副密码签名,再用 PBKDF2 算法使用 SHA-512 算法生成指定长度的哈希值,最后用 Base64 转译,再在前面加一个感叹号,这就是生成的密码了。
## ❤ 贡献
编写此项目时,作者并不具备密码学相关的知识。若对本项目的安全性存在顾虑或改进措施,也欢迎来提 issue 或 PR。不过无论如何,欢迎来 Star。