#gpg #vanity #key #openpgp #generate #filtering #back-end

bin+lib vanity_gpg

用于生成和过滤虚荣GPG密钥的简单工具,c0nCurr3nt1Y。

4个版本 (2个重大更改)

0.3.2 2022年6月7日
0.3.0 2021年3月24日
0.2.0 2020年9月26日
0.1.0 2020年6月8日

#1667 in 命令行工具

每月24次下载

MITLGPL-3.0 OR GPL-2.0 OR GPL-3.0

67KB
1.5K SLoC

VanityGPG (vanity_gpg)

license

用于生成和过滤虚荣GPG密钥的简单工具(即 OpenPGP 密钥指纹碰撞工具),c0nCurr3nt1Y。

安装

当前版本(v0.3),VanityGPG 提供了两套后端,Sequoia-OpenPGPrPGP。如果您的系统中已安装 libclang,则建议使用默认的 sequoia 后端。

安装 sequoia 后端所需的依赖项(假设您正在使用 Ubuntu)

apt install git rustc cargo clang make pkg-config nettle-dev libssl-dev capnproto libsqlite3-dev

使用 cargo 安装 VanityGPG

cargo install vanity_gpg

如果您的系统没有提供 libclang,还有一个纯 Rust 的 rPGP 后端可用

cargo install vanity_gpg --no-default-features --features rpgp

如果使用 rPGP 后端,不建议将其生成的密钥用作主密钥。它使用 PRNG 生成随机数,这被认为(有点)不安全。

性能

以下参数

./vanity_gpg -c Ed25519 -jX -u "Kay Lin <[email protected]>" -p "(8B){5,20}$|(B8){5,20}$|(EB){5,20}$|(BE){5,20}$|(EF){5,20}$|(FE){5,20}$|A{10,40}$|B{10,40}$|C{10,40}$|D{10,40}$|E{10,40}$|F{10,40}$|1{10,40}$|2{10,40}$|3{10,40}$|4{10,40}$|5{10,40}$|6{10,40}$|7{10,40}$|8{10,40}$|9{10,40}$|0{10,40}$|1145141919810$"
系统/后端 Sequoia 备注
Tegra210 (X1) @ 1.9GHz (-j4) ~6,300,000 哈希/秒 Fedora AArch64,sequoia 后端,Jetson Nano
Intel Xeon E3-1231 V3 @ 3.4GHz (-j8) ~15,000,000 哈希/秒 FreeBSD,sequoia 后端,未使用 jemalloc
Intel Core i7-8569U @ 2.8GHz (-j8) ~18,000,000 哈希/秒 macOS,sequoia 后端,使用 Nix 构建
AMD Ryzen 5 3600 @ 3.9GHz (-j12) ~80,000,000 哈希/秒 NixOS,sequoia 后端
AMD Ryzen 7 3700x @ 4.1GHz (-j16) ~120,000,000 哈希/秒 AOSC OS,sequoia 后端

致谢

Sequoia-OpenPGPrPGP 团队,感谢他们的出色工作。

@nwalfield,感谢他极其有用的建议,这极大地提高了 VanityGPG 的性能(#2)。

用法

vanity_gpg 0.3.0
A simple tool for generating and filtering vanity GPG keys, c0nCurr3nt1Y

USAGE:
    vanity_gpg [FLAGS] [OPTIONS] --pattern <pattern>

FLAGS:
    -d, --dry-run    Dry run (does not save matched keys)
    -h, --help       Prints help information
    -v, --verbose    Verbose level
    -V, --version    Prints version information

OPTIONS:
    -c, --cipher-suite <cipher-suite>
            Cipher suite [default: Ed25519] [possible values: Ed25519, RSA2048, RSA3072, RSA4096,
            NISTP256, NISTP384, NISTP521]

    -j, --jobs <jobs>                    Number of threads [default: 8]
    -p, --pattern <pattern>              Regex pattern for matching fingerprints
    -u, --user-id <user-id>              OpenPGP compatible user ID

备注

  • 将启动一个额外的线程以显示摘要。
  • 建议使用正则表达式配合多个规则以实现最大效率。

勘误

在AArch64机器上,您可能需要在编译前禁用"asm"功能,以便编译sha-1

依赖项

~13–31MB
~423K SLoC