TransparentLC / LiteLoaderQQNT-PGP-Encryption

在 QQ 中使用 PGP 进行端到端加密,支持半自动加密和自动解密。
GNU Affero General Public License v3.0
7 stars 0 forks source link

LiteLoaderQQNT-PGP-Encryption

在 QQ 中使用 PGP 进行端到端加密,支持半自动加密和自动解密。

目前已经有了一些提供加密功能的 QQNT 插件(例如歪比巴卜Encrypt Chat),不过这些插件采用的都是自定义的密钥管理和加密数据格式,无法在 QQNT 以外的环境下使用。

而 PGP 是一套非常成熟、久经考验、且已经高度标准化的加密协议,你可以在任何支持 PGP 的客户端上解密使用 PGP 标准加密的数据,例如 GnuPGOpenKeychainThunderbird 等等。这个插件允许你在 QQ 上更方便地使用 PGP 加密。

使用方式

一些简单的基本概念

你可以查找更多关于 PGP 的介绍。

钥匙串

插件的数据目录 /path/to/LiteLoaderQQNT/data/PGP_Encryption/keychain 相当于你的“钥匙串”,你可以把你需要使用的密钥放在这里。

如果你需要给某个人发送加密消息,你需要通过各种方式获得他的公钥,然后保存到钥匙串中。

你也可以将你自己的个人密钥(私钥)保存到钥匙串中,虽然对于发送加密消息来说这不是必须的。如果你没有个人密钥,可以自己生成一个。

如果你安装了 GnuPG,可以使用 gpg --armor --exportgpg --armor --export-secret-keys 导出已有的密钥。

解密

当你在聊天窗口、合并转发和聊天记录中收到了 -----BEGIN/END PGP MESSAGE----- 开头和结尾的 PGP 加密消息,这个插件就会自动尝试解密,并展示解密结果。

将鼠标放到“PGP 加密消息”的文字提示上,会显示加密和签名消息使用的密钥。你需要持有对应的私钥才能解密消息。

点击🔓图标可以在显示解密结果和原始密文之间切换,右键复制时复制的仍然是密文。

加密

你需要在“密钥设置”→“公钥绑定”中将公钥与 QQ 号或群号绑定,这样插件就可以知道使用哪个密钥加密了。在对应的聊天窗口左下角会有“PGP 加密可用”的提示,此时按下 Ctrl + / 即可加密输入窗口内的文本。

如果你设置了个人密钥,则消息也会使用该密钥进行加密和签名。反之则消息不会被签名,且发送后你自己也无法解密。

局限性

借物表