使用 GPU(WebGL)快速生成带有“靓号”的 PGP 密钥!
“靓号”指的是带有连号等特定格式的密钥指纹或 ID(例如以 77777777
结尾),具体介绍和生成原理请参见:
密钥使用 OpenPGP.js 在浏览器中生成,不会发送到其他地方。如果仍然担心这一点,可以检查源代码、查看浏览器开发者工具的“网络”部分、或在页面加载完成后断网使用。
可以按 Enter 添加更多的用户 ID。
- {{ e.name }} <{{ e.email }}> [x]
根据 GPU 性能和占用率调节这两个值。
你会得到一个生效时间距离现在 {{ (backTime > 2592000) ? `${Math.ceil(backTime / 2592000)} 个月` : `${Math.ceil(backTime / 86400)} 天` }}之内(最早为 {{ (new Date(Date.now() - backTime * 1000)).toISOString() }}
)的密钥。
40 个十六进制数字,不区分大小写。空格会被忽略,X
表示只要这些位相同即可,其他 [\dA-FX]
以外的字符表示对该位数字没有要求。
最后 个数字为 快速设置
预计需要计算 {{ estimatedHashCount }} 次 hash,实际的计算次数可能是这个值的几分之一或几倍,也许需要一点运气……
直接使用 GLSL 代码!
你可以自行编写更复杂的判断密钥指纹是否符合格式的 GLSL 代码,这些代码将以 `#define FILTER(h) (code)` 的形式出现在算号使用的着色器中。
换行会被替换成空格,留空则会使用“密钥指纹格式”的设定,输入错误的代码将无法得到任何密钥。
在着色器中,计算的密钥指纹(实际上是 80 bytes 的 SHA-1 hash)以大端序保存为 `uint[5]`,并使用上面的 `FILTER` 来检查是否符合格式。
把不同密钥的“靓号”合并到一起!
如果你希望生成主密钥和子密钥都是“靓号”的密钥,可以先分别生成两个不同的密钥,然后在这里合并。
私钥 B 的主密钥和子密钥将作为子密钥被附加到私钥 A 上。
然后,请自行使用 gpg --edit-key
编辑私钥,例如删除不需要的子密钥 delkey
、修改密钥用途 change-usage
和有效期 expire
等,再输入 save
保存更改。
算号成功后使用 ntfy 发送通知
不间断算号
将生成的私钥自动保存到本地 选择目录 {{ saveToDirectoryHandle ? saveToDirectoryHandle.name : '未设定' }}
已计算 hash:{{ hashCount }} {{ `(${Number(BigInt(hashCount) * 100n / estimatedHashCount) / 100}x estimated)` }}
耗时:{{ Math.round(runningTime / 1000 * 100) / 100 }}s
速度:{{ Math.round(hashCount / runningTime * 1000 * 100) / 100 || 0 }} hash/s
生成的密钥(已生成 {{ generatedKeyHistory.length }} 个)
[批量保存私钥] [清除生成记录]
生效时间:{{ generatedKey?.publicKey.getCreationTime().toISOString() || '****-**-**T**:**:**.***Z' }}
指纹(主密钥和子密钥):
{{ formatFingerprint(e) }}