如何用 OpenSSL 在 V 站给我发私信

2023-01-05 06:29:05 +08:00
 gowl

Step 1 of 4: 保存我的公钥

把下面这段公钥存到一个文件中,比如 /tmp/ThatPerson.txt。注意「-----BEGIN PUBLIC KEY-----」和「-----END PUBLIC KEY-----」也要一同保存到文件里。

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC34UeKXRLMkZc0MPRkizTn3Ert
CAUq2wHlIIPtAtISDNYBr/R9lGD9WCqvuweWq0jSeRVgP25s+BsLuK/PNSpJqvnR
J4OJLlcKlsL06Ao8PIR8npgY4/Aump/6+1JJUQq9SlCfA3WUjc3dY1dkVySHZbl6
YIbgCvTptDcWP35H6QIDAQAB
-----END PUBLIC KEY-----

Step 2 of 4: 加密你的消息

在 macOS 或 Linux 的命令行中用 OpenSSL 加密你的消息:

echo "只想让你知道" | openssl pkeyutl -encrypt -inkey /tmp/ThatPerson.txt -pubin | base64

你会得到类似如下的一段输出:

rqh9y1BWSWhwIJ+MZXfNMbobTfuwp++DbbWvbHL03ZeECOfVN2UOZn+k+CloktPu3FixK3nsJ3NB
3j8wgektGxTETnq/mRg8Yl6LcuW2ajV+BRWMmSE2EXvFH7WfYwUyn3MNQwi6dB4NQGU1kV3PS0Ds
njHazyQislkL9f3E9K8=

Step 3 of 4: 把加密过的消息传给我

你可以在任意一个我发的帖子下复制粘贴上面一步得到的输出,我会收到通知并看到。

Step 4 of 4: 我会解密并阅读你的消息:)

2941 次点击
所在节点    奇思妙想
29 条回复
Rocketer
2023-01-05 06:38:35 +08:00
你可以做个 v2 客户端,自动这一过程
icegaze
2023-01-05 07:17:43 +08:00
挺不错的,
但是公钥的(可信)分发是个头疼的事儿。

也就是,如何防止公钥伪造 /篡改、如何证明你是你这个问题。
neighbads
2023-01-05 07:34:14 +08:00
@icegaze 公钥不用证明。不用防篡改,这种用途下 就是“公”的意义。
icegaze
2023-01-05 07:41:30 +08:00
@neighbads

我描述的不大准确,不是公钥被篡改,

你以为对方是 A ,其实对方是 B ,但伪装自己是 A…

所以,
你以为你在和 A 聊天,
但其实是用 B 的公钥加密,且给了 B…
gowl
2023-01-05 07:49:10 +08:00
我把我的公匙也放到了个人会员页面,只要网站不出问题就不会改变: https://v2ex.com/member/gowl
cxh116
2023-01-05 08:07:01 +08:00
这场景可以了解下 GPG 。
gowl
2023-01-05 08:08:59 +08:00
考虑过 GPG ,但觉得 OpenSSL 要比 GPG 更常见,所以选择了 OpenSSL 。
gowl
2023-01-05 08:10:32 +08:00
在安全性上没有区别,还能尽可能减少别人的麻烦。
lucybenz
2023-01-05 08:15:37 +08:00
@icegaze 你说的场景是 A B 互换公钥 发消息时 以发件人的私钥加密,收消息时用发件人的公钥解密
cat9life
2023-01-05 08:19:48 +08:00
这个有点意思。希望那个大佬可以搞成 v2 插件
gowl
2023-01-05 08:21:53 +08:00
@cat9life 这个其实不需要插件,只要大家都把自己的 public key 放在个人页面就行了~有了这个,就有了私密的通信渠道,即便网站本身不支持。
me221
2023-01-05 10:08:10 +08:00
GPG 为啥不常见.
commit 签名不就要用吗, 包管理器下载有时候也要拉 gpg 公钥啊
gowl
2023-01-05 10:24:04 +08:00
@me221 可能差不多,我只是推测
goodryb
2023-01-05 11:36:39 +08:00
@icegaze #4 你这种应该是属于签名吧, 我印象中 加密 和签名 是不一样的逻辑
gowl
2023-01-05 13:21:24 +08:00
@goodryb 是的,签名是用自己的  private key ,加密使用别人 public key
retanoj
2023-01-05 15:09:12 +08:00
搞个浏览器插件是不是更方便一些?
zhchyu999
2023-01-05 15:17:44 +08:00
啥原理啊,能科普下么
retanoj
2023-01-05 16:09:16 +08:00
@zhchyu999 这能有啥原理,公钥加密私钥解密啊
zhchyu999
2023-01-05 16:37:55 +08:00
@retanoj 我明白了通知是靠的本站的回帖通知
揭秘是自己手动揭秘
感谢回答
edis0n0
2023-01-05 16:58:58 +08:00
建议 @Livid 只允许在 /go/chamber 中发布加密内容,否则大段加密内容出现在正常帖子回复中会严重影响阅读体验

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/906645

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX