#passphrase #word-list #byte #password #random #generate #port

niceware

生成或转换随机字节到口令。尼韦尔的 Rust 版本。

4 个版本 (1 个稳定版)

1.0.0 2022年1月21日
0.6.0 2021年10月11日
0.5.0 2021年10月11日
0.4.0 2021年10月10日

#1802 in 密码学

MIT 许可证

1MB
66K SLoC

niceware

Rust crates.io v0.6.0

我的博客文章: 将 Niceware 移植到 Rust


A Rust port of niceware. Sections of this README have been copied from the original project.

此库生成随机且易记的密码。每个单词提供 16 位熵,因此有用的密码至少需要 3 个单词。

从字节到口令的转换是可逆的。

由于单词列表的大小正好是 2^16,因此 Niceware 还可以用于将加密密钥和其他随机字节序列转换为人类可读的短语。使用 Niceware,128 位密钥相当于 8 个单词短语。

与源代码类似,请注意以下警告

警告:单词列表未经严格审查,可能包含冒犯性词汇。使用风险自担。

示例用例

  • niceware 可以用来生成安全、半易记、易于输入的口令。niceware 中的随机 3-5 个单词短语与大多数在线服务的强密码相当。例如,+8svofk0Y1o=bacca cavort west volley 相当强大(64 位随机性)。

  • niceware 可以用来以用户可以轻松备份或在不同设备之间复制的方式显示加密密钥材料。例如,用于生成 256 位 ECC 密钥(约相当于 3072 位 RSA 密钥)的 128 位随机种子仅 8 个 niceware 单词。使用这个 8 个单词的短语,您可以重建整个公钥/私钥对。

测试

cargo test

致谢

Rust 版本

@Kixunil#2 中对 idiomatic 和 performant Rust 进行了一些出色的更改。

代码、测试和文档要么是直接移植/复制的,要么是受 niceware 启发的。

原始版本

尼康韦尔受到迪卡韦尔的启发。其词汇表来源于SIL 英语词汇表。本项目基于[diracdeltas]为雅虎端到端项目进行的 OpenPGP 密钥备份工作。

依赖关系