4 个版本
0.1.3 | 2020 年 1 月 13 日 |
---|---|
0.1.2 | 2020 年 1 月 13 日 |
0.1.1 | 2020 年 1 月 13 日 |
0.1.0 | 2020 年 1 月 12 日 |
#2466 在 密码学
9KB
99 行
PWORD
PWORD 是一个单向、无需同步的确定性密码生成器。100% 使用 Rust diceware 和 aragon2(2015 年密码散列竞赛的获胜者)来创建一个加密安全的密码。
您应该能够在任何计算机上安装此程序,并完全离线访问您的任何密码,无需同步。
人类需要记住的内容
- 主短语 "Endnote kindness clover"
- 为 "github.com" 生成密码的网站名称
如果您将上述文本输入到 pword 中,它将始终显示相同的密码 raW5kbmVzcyBjbG92ZXI
,我建议您不要实际使用 - 这只是为了演示目的。
安装
快速安装
cargo install pword
克隆和构建安装
git clone https://github.com/drbh/pword.git
cd pword
cargo install
工作原理
基于 diceware 算法,我们为用户生成一个易于记忆的主短语。此短语由一个安全的随机数生成器 开发者更多信息 进行播种。接下来,我们使用此短语作为 aragon2 密码生成函数中的盐。
根据用户输入的网站 - 我们建议包括域名但不包括协议或尾部路径的主机名。例如 - github.com
不包括 https - 和我们的主短语,我们有足够的随机性,但易于记忆的输入到我们的哈希函数。我们将输入和盐传递给 Aragon2,这是一个内存密集型密码函数。输出是一个长的哈希字符串,我们从中间选择 20 个字符。
输出是一个独特的 20 位密码,可以通过使用短语和密码主机重新生成。虽然这旨在使人类极容易记住密码生成过程,但从计算角度来看是非常昂贵的(需要短语生成和内存密集型哈希函数)。
虽然您可以创建一个更安全的密码(一个 100 位以上的密码),但记住它将非常困难,但这也为您提供了一个简单的方法,从跨平台工具中创建和访问许多非常安全(可能比您当前的密码更安全)的密码。
使用
主短语
pword new
# Endnote kindness clover
生成新密码
pword generate
# Type a password:
#
# 👍 thanks.
#
# Type a label for your password
# github.com
#
# Your password:
# raW5kbmVzcyBjbG92ZXI
依赖项
~4MB
~79K SLoC