22 个版本 (稳定版)
新版本 1.2.4 | 2024年8月15日 |
---|---|
1.2.2 | 2024年7月8日 |
1.2.0 | 2024年4月22日 |
1.1.6 | 2022年10月13日 |
0.5.0 | 2022年6月17日 |
#101 in 认证
每月 263 次下载
19KB
252 行
pkpw
如果正确的是 correct horse battery staple
,但却是宝可梦。
安装
cargo install pkpw
使用方法
命令行界面
$ pkpw -h
pkpw 1.2.4
Jesse Brooklyn Hannah <[email protected]>
What if correct horse battery staple, but Pokémon.
USAGE:
pkpw [OPTIONS]
OPTIONS:
-c, --copy Copy the generated value to the clipboard instead of displaying
it
-h, --help Print help information
-l, --length <LENGTH> Minimum length of the generated password
-n, --count <COUNT> Number of Pokémon names to use in the generated password
[default: 4]
-s, --separator <SEPARATOR> Separator between Pokémon names in the generated password; either
a single character, "digit" for random digits, or "special" for
random special characters [default: " "]
-V, --version Print version information
库
use pkpw::generate;
use rand::thread_rng;
let mut rng = thread_rng();
let password = generate(None, 4, " ", &mut rng);
但是它安全吗?
免责声明: 这只是估计,我有一个物理学学位,但我不是组合数学或密码学专家。
密码熵 是根据生成密码时使用的密码池大小 $R$ 和密码长度 $L$ 来计算的
$$ E = log_2(R^L) $$
其中,暴力破解攻击需要平均 $2^{E-1}$ 次猜测来破解具有 $E$ 位熵的密码。
默认情况下,pkpw
从包含 1025 个已知宝可梦 的池中随机选择 4 个宝可梦名字,结果熵为
$$ E = log_2(1025^4) \approx 40.01 $$
位。一个知道使用 1025 个已知宝可梦名字作为值的池的字典攻击,平均需要 $1.104 \times 10^{12}$ 次猜测来正确猜测密码,或者大约需要 34 年,11 个月和 21 天(每秒 1000 次猜测)。
每个宝可梦名字的平均长度约为 7.67 个字符,使用默认设置生成的密码平均长度约为 34 个字符(4 个宝可梦名字,每个名字之间有一个空格,总共 3 个空格)。使用包含 95 个标准 US 键盘字符(字母数字、特殊字符和空格)的池的暴力破解攻击将面对
$$ E = log_2(95^{34}) \approx 222.375 $$
位的熵,平均需要 $1.748 \times 10^{67}$ 次猜测,或者大约需要 $5.540 \times 10^{56}$ 年,才能正确猜测密码。
版权
所有宝可梦名称均为™和©宝可梦公司所有。本项目中除外的所有内容均为Jesse Brooklyn Hannah所有,并按照MIT许可证发布。
依赖项
~3–17MB
~185K SLoC