V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
iqoo
V2EX  ›  分享创造

网页版时间锁,一定时间后才能解密消息

  •  
  •   iqoo · 2024-04-01 16:20:15 +08:00 · 4092 次点击
    这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变。

    拿几年前的弱口令强化 Demo 修改了下,做了个在线版的时间锁,可以让接收者必须经过一定时间才能看见消息。

    演示: https://etherdream.github.io/timelock/

    (备用地址: https://etherdream.com/timelock.html

    界面有点简陋,未适配移动端~ 有 BUG 或建议可以反馈。

    测试 1:

    https://etherdream.github.io/timelock/#iter=10&key=0xC7E071A0F35D5677&cipher=0x7667ADF22C7FA346A2E13307611073FFF7011C903E01DA50925791

    点击“解密”按钮开始解密,单核性能越高,解密越快。建议使用 Chrome 浏览器。

    我的电脑上大约 10 秒能解开( MacBookPro M1 ),内容为 “Hello World”。

    测试 2:

    https://etherdream.github.io/timelock/#iter=120&key=0x5231217743B22301&cipher=0x34965EF12FC6A9E76EE7C9242D72D74E0FF4C67757732399760D4C9EF71896A2C61374A30441A59E22CA9BBE4EB7

    大约 120 秒能解开,内容为 “支付宝口令红包 ********”。( 100 个,2024-04-02 过期。没 BUG 的话之后发一个只能 1 人领取但解密时间更长的,看谁的 CPU 主频最高)

    有什么可以改进或好玩的,可以想象下~

    第 1 条附言  ·  305 天前
    由于算法已改变,上述演示链接已失效。
    23 条回复    2024-04-02 21:21:12 +08:00
    CivAx
        1
    CivAx  
       2024-04-01 16:58:40 +08:00
    Cool ,领到了第 6 个
    ztmzzz
        2
    ztmzzz  
       2024-04-01 17:00:43 +08:00 via iPhone
    ios chrome 能正常用,花了 3 分钟解密
    xiaoen
        3
    xiaoen  
       2024-04-01 17:06:07 +08:00
    领到了红包
    tool2d
        4
    tool2d  
       2024-04-01 17:12:27 +08:00
    收到大大的红包,感恩 OP !

    我上次也写了一个前端大计算量的 JS 代码,结果 chrome 直接失去响应。。
    LeslieLeung
        5
    LeslieLeung  
       2024-04-01 17:14:07 +08:00
    领到了第 12 个,好有趣的 demo !这周的周刊又有材料了。

    能不能作为一种反制脚本黄牛的抢购限制手段?必须提早打开页面挂着(购买意愿)并且消耗性能(投入成本)。(不过开虚拟机,每个分配一个核就能解决,只是提高了成本)
    lzgshsj
        6
    lzgshsj  
       2024-04-01 17:14:57 +08:00
    有点意思
    jurassic2long
        7
    jurassic2long  
       2024-04-01 17:19:49 +08:00
    公司的 i5-6500,耗时 14 分钟。。。领到第 45 个
    ififi
        8
    ififi  
       2024-04-01 17:22:23 +08:00
    领到了第 51 个。谢谢 OP !
    googlefans
        9
    googlefans  
       2024-04-01 17:23:36 +08:00
    以前看到过很多类似的:
    https://www.pastery.net/
    https://controlc.com/
    alexsz
        10
    alexsz  
       2024-04-01 17:24:32 +08:00
    谢谢张真人😁
    R31
        11
    R31  
       2024-04-01 17:26:16 +08:00
    61 个 感谢
    BluePadge
        12
    BluePadge  
       2024-04-01 17:30:21 +08:00
    领到了第 63 个。有一个粗浅的想法:靠加密可以做一个“意外死亡在线遗书”,发布者需要定期延后解密时间,一段时间未更新的话,就把内容作为遗书发送到指定邮箱去。
    LXchienne
        13
    LXchienne  
       2024-04-01 17:31:43 +08:00
    领到了,只是加密时间太长了,想法很不错
    polaris1815
        14
    polaris1815  
       2024-04-01 17:32:06 +08:00
    buyerhou
        15
    buyerhou  
       2024-04-01 17:38:16 +08:00
    perfect
    guqikang
        16
    guqikang  
       2024-04-01 17:39:22 +08:00
    领到了,谢谢
    KorenKrita
        17
    KorenKrita  
       2024-04-01 17:43:49 +08:00
    提两个建议
    看起来难度是只能为正整数 但是前端页面没限制只能输入正整数 试了几个小数是可以运行的但是会在整数部分结束后就出结果了
    对于加密来说应该加密后给出完整的分享链接(最好还能自动复制到剪贴板) 而不是让用户自己拼 要是没有你的这俩测试链接我都不知道怎么拼
    tool2d
        18
    tool2d  
       2024-04-01 17:49:50 +08:00
    @BluePadge 现在加密时间和解密差不多。你如果要延后一年解密,估计要先算半年加密。
    iqoo
        19
    iqoo  
    OP
       2024-04-01 17:58:37 +08:00   ❤️ 1
    @tool2d 不考虑网页版的话是可以快速加密的,demo 里的论文中有详细讲解。

    之前有个新闻 https://www.linkresearcher.com/information/6c3da22d-11fa-45d3-a18c-0c3b28835dd5 也讲解过
    hawken
        20
    hawken  
       2024-04-01 18:00:48 +08:00
    “来晚了,红包已领完” 怎么看时间啊,手动计算吗
    iqoo
        21
    iqoo  
    OP
       2024-04-01 20:30:16 +08:00
    @KorenKrita
    复制链接功能已加上

    难度值的本质是调用 pbkdf2 函数的次数,无法分割成小数。当然,倒是可以根据小数部分设置每次传入 pbkdf2 中的迭代参数,目前该参数是固定 1e7 ,在我笔记本电脑上大约耗时 1s 。如果要考虑低性能的 CPU ,倒是可以考虑这个方案。
    dbit
        22
    dbit  
       2024-04-02 09:30:21 +08:00 via iPhone
    感觉 iPhone15 一分半就解开了? 尽管没领到红包
    rekulas
        23
    rekulas  
       2024-04-02 21:21:12 +08:00
    这个问题我以前也有研究过,因为想做一个区块链上的密码包,目前来说要想真正设置一个时间胶囊只能靠算力限制(挖矿- _ -), 要想快速生成就要降低整个链条的相关性, 但要想防并发破解又要提高相关性(串行解密), 所以找到一个合适的平衡点很重要, 能不能找到一个又快又防爆破的算法,目前来看很难(可能以后量子领域有更好的办法吧), 另外还存在一个问题就是预测遥远未来的算力增长趋势误差太大,容易导致密码被过早(例如帖子中的那样)或过晚解密出来
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2738 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:57 · PVG 12:57 · LAX 21:57 · JFK 00:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.