V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xujinkai
V2EX  ›  程序员

做了一个"手动挡"的加密聊天应用,看看能不能给 v2er 当私信

  •  
  •   xujinkai ·
    XUJINKAI · 42 天前 · 3726 次点击
    这是一个创建于 42 天前的主题,其中的信息可能已经有所发展或是发生改变。

    纯静态页面,数据都在 localStorage 里。

    基本工作流程是这样的:

    1. A 把自己的带公钥的链接发上来
      比如我的是 https://xujinkai.net/crypto/msg?share=025dc36429193eab5bbb5c8c9cfb8d007020be4a4f71452c6f758baf7dd2606d6a

    2. B 点开这个链接,输入内容点加密。这个时候页面会生成一个带加密内容的链接,并写进剪贴板。粘贴给 A ,A 打开就看到内容了。

    全程围观的群众虽然能看到这两个交互的内容,但是无法解密。

    原理:就是 ECDH 密钥交换,页面会自动生成一个私钥,A 的链接里带 A 的公钥,B 的链接里带 B 的公钥和密文。有对方的公钥和自己的私钥就可以算出一个密钥,就可以加解密了。

    除了互相交换公钥的形式,还弄了个 psk 的形式,比如下边这个链接,直接打开会弹解密错误。 https://xujinkai.net/crypto/msg?sid=983ec9d0&encrypted=16d2108489cc87e9901787b6a8b4077e006fa02f42f726174f588323be338762&id=1730990463322

    这时要先回界面点 New Session ,底下 psk 输入v2ex创建一个 session ,然后再来打开这个链接,就能看到内容了。

    不带参数的链接: https://xujinkai.net/crypto/msg

    第 1 条附言  ·  41 天前
    其实我是想做个密码工具箱,但是网上类似东西太多了,就想搞点有特色的东西,或者在体验这块拉满。

    这个网站现在做了 base64 ,hash ,qrcode ,主要是提供了 URL 参数的方式去调用。结合鼠标手势之类的应用比较方便。

    源码在 GitHub https://github.com/XUJINKAI/crypto-online
    31 条回复    2024-11-08 17:13:10 +08:00
    realpg
        1
    realpg  
       42 天前   ❤️ 1
    V2er 大部分不犯罪不反动,不需要加密私信
    xujinkai
        2
    xujinkai  
    OP
       42 天前
    @realpg #1 你说的对,我想的场景是私聊联系方式🤣
    terrytw
        3
    terrytw  
       42 天前 via Android   ❤️ 7
    中国大陆人上 v2 就是犯罪
    terrytw
        4
    terrytw  
       42 天前 via Android   ❤️ 3
    至于反动,去看看历史,给你挂一顶反动的帽子,还需要理由么
    xujinkai
        5
    xujinkai  
    OP
       42 天前   ❤️ 4
    @terrytw #4 你这。。。跟我这帖子有啥关系
    Moonle
        6
    Moonle  
       42 天前   ❤️ 1
    @terrytw 你应该打繁体字
    lovestudykid
        7
    lovestudykid  
       42 天前   ❤️ 1
    挺有用的,比如交换邮箱和联系方式,相比于自欺欺人的 base64 ,这个是真的可以起作用。但是很难推广开
    kkk9
        8
    kkk9  
       42 天前
    @lovestudykid #7 邮箱地址本就应该是公开交换的,base64 只是尽量减少搜索引擎直接索引,而不是你觉得自欺欺人。
    lovestudykid
        9
    lovestudykid  
       42 天前
    @kkk9 你愿意公开交换,不代表所有人都愿意
    mayli
        10
    mayli  
       42 天前
    这个跟一些 pastebin 加密看起来类似
    niubee1
        11
    niubee1  
       41 天前
    支持压缩到 33bytes 的公钥不?
    zuoshoufantexi
        12
    zuoshoufantexi  
       41 天前
    @terrytw 违法和犯罪都分不清的……
    niubee1
        13
    niubee1  
       41 天前
    这么聊天呢,感觉有点累,你改成是加密传文件呢,可能就合适了
    ShareDuck
        14
    ShareDuck  
       41 天前
    @realpg 加密跟犯罪没有必然关系吧。微信的私信也是加密的。
    RiESA
        15
    RiESA  
       41 天前
    感觉这样麻烦,很难推广开,你要是搓成浏览器扩展或者脚本啥的估计还有人用
    Yanlongli
        16
    Yanlongli  
       41 天前
    加密从来不是难点,难点是 A 如何确认 B 的身份、B 如何确认 A 的身份
    ZactorSimmons
        17
    ZactorSimmons  
       41 天前   ❤️ 1
    @livid #2 #3 主题无关 spam
    xujinkai
        18
    xujinkai  
    OP
       41 天前 via Android
    @niubee1 我用的就是压缩后的公钥,不然确实太长了。加密文件还没来得及做。

    @Yanlongli 我想的典型场景就是 v2 交换联系方式。这也没有身份确认的必要,你联系的肯定是那个账号背后的人。base64 反而是谁都能解码谁都能联系。

    @RiESA 就是临时用一下,也没想着能当聊天软件,那样超纲了
    werls
        19
    werls  
       41 天前
    @ShareDuck 微信真的是加密吗?
    tabc2tgacd
        20
    tabc2tgacd  
       41 天前
    需要加密聊天的话,可以用电子邮件客户端啊(比如 thunderbird),交换了公钥,然后就能开聊了,公钥可以通过其他途径交换(这样除非某人同时掌握了你交换公钥的途径和你的电邮服务商,否则这就是安全的)
    xujinkai
        21
    xujinkai  
    OP
       41 天前 via Android
    @werls 微信加密≠第三方看不见😏 我抢答了

    为了自证清白,我得声明,我在微信上用这个只是为了和老婆瑟瑟。违法犯罪请左拐派出所。

    @tabc2tgacd 只是临时用一下感觉会方便,并没有替代其他加密聊天的企图
    ShareDuck
        23
    ShareDuck  
       41 天前
    @werls 个人对个人之间是加密的,群不是,这个应该没什么争议。
    我猜你有疑问的是:个人对个人之间的加密通信,腾讯是否有留存、能否被执法机关解密。目前从已知的民事、刑事案件的案例来看,法院都无法从腾讯调取到个人和个人间的聊天记录。案例都是从手机中解密获取的,包括安卓和苹果,我看 v2 上很多人对 iPhone 的安全性有蜜汁自信,特地提一下。
    至于上升到国安级别的案件,我猜是有留存(但不一定是腾讯)、能解密。但没有证据证明我的猜测。
    ronman
        24
    ronman  
       41 天前
    有场景,但是使用不便捷,是推广的最大阻碍
    blackmirror
        25
    blackmirror  
       41 天前
    最终场景只能是炮友
    ZZ74
        26
    ZZ74  
       41 天前 via Android
    挺好的,我就想要类似的,在公司和个人电脑各打开一个页面,然后把内容加密发给对方。
    james122333
        27
    james122333  
       41 天前 via Android
    我连註册邮箱密码都忘记了
    ulata8
        28
    ulata8  
       41 天前
    。。。。GPG 啊
    werls
        29
    werls  
       41 天前
    @ShareDuck #23 如果是用国密算法加密,国安能解密的。
    xujinkai
        30
    xujinkai  
    OP
       41 天前
    @blackmirror #25 这样更奇怪了吧🤣
    ShareDuck
        31
    ShareDuck  
       41 天前
    @werls #29 国密算法不是一种算法哦,大概意思是“国产的加密算法”,可以理解为国外几种主流算法的变种,安全性上没有级别上的差异。我认为能解密的原因是保存了加密的密匙,而不是算法上有漏洞。当然,理论上只要算力足够,没有密匙也能解密。不过这个算力要求就太夸张了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1016 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 109ms · UTC 20:45 · PVG 04:45 · LAX 12:45 · JFK 15:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.