V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xujinkai
V2EX  ›  程序员

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

  •  
  •   xujinkai ·
    XUJINKAI · 6 天前 · 3178 次点击
  •   查看本主题需要登录

    纯静态页面,数据都在 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 条附言  ·  6 天前
    其实我是想做个密码工具箱,但是网上类似东西太多了,就想搞点有特色的东西,或者在体验这块拉满。

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

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

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

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

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

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