如何用 OpenSSL 在 V 站给我发私信 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
gowl
V2EX    奇思妙想

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

  •  
  •   gowl 2023-01-05 06:29:05 +08:00 3628 次点击
    这是一个创建于 1089 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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: 我会解密并阅读你的消息:)

    29 条回复    2023-01-14 12:04:55 +08:00
    Rocketer
        1
    Rocketer  
       2023-01-05 06:38:35 +08:00 via iPhone
    你可以做个 v2 客户端,自动这一过程
    icegaze
        2
    icegaze  
       2023-01-05 07:17:43 +08:00 via Android
    挺不错的,
    但是公钥的(可信)分发是个头疼的事儿。

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

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

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

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

    RSA 是要别人用 A 的公钥加密,所以只有 A 才能解密看到…我说的意思是,无法证明公示的公钥就是 A 的,如果没有可信平台 /渠道 公示 A 的公钥,人们以为给 A 发送了加密信息,其实是发给了 B…… 嗯,也许 B 就是伪装成 A 的一个中间人……^_^
    icegaze
        24
    icegaze  
       2023-01-06 16:53:07 +08:00 via Android
    @lucybenz

    是的,
    我说的就是公钥的可信交换 /公示…
    就是如何证明『你是你』的问题…-_-||
    benzlucy
        25
    benzlucy  
       2023-01-06 22:18:32 +08:00
    @icegaze 你这就失去逻辑了 哪有什么权威 可信 楼主把他的公钥放到会员主页 支付宝把公钥放到官网 如果你依然不信任 那就不信任吧
    troilus
        26
    troilus  
       2023-01-07 12:38:07 +08:00
    PGP+Mailvelope 这个浏览器插件很方便的啦

    https://mailvelope.com/en
    troilus
        27
    troilus  
       2023-01-07 12:40:41 +08:00
    @icegaze 可以多渠道验证嘛语音视频面基
    testcaoy7
        28
    testcaoy7  
       2023-01-14 10:43:02 +08:00
    l7JtaJDXdCjZghPUo6lpiIHB8SvulOo6Ak+l+3tWIFUCrav24JPc1si3X6a0pu+JBGgVK84Whv9B
    dwsXn3paUKcd2wO9R3xVQhpfC+0xz58qv1z3EThyW02DEv5Aqr3pScUbkdVjkTiu1eiPVbYd+JN9
    kjxUvqWndQfttltjr8Y=
    gowl
        29
    gowl  
    OP
       2023-01-14 12:04:55 +08:00
    @testcaoy7 测试成功:)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3062 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 13:03 PVG 21:03 LAX 05:03 JFK 08:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86