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

60 天前
 iqoo

拿几年前的弱口令强化 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 主频最高)

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

3385 次点击
所在节点    分享创造
23 条回复
iqoo
60 天前
@KorenKrita
复制链接功能已加上

难度值的本质是调用 pbkdf2 函数的次数,无法分割成小数。当然,倒是可以根据小数部分设置每次传入 pbkdf2 中的迭代参数,目前该参数是固定 1e7 ,在我笔记本电脑上大约耗时 1s 。如果要考虑低性能的 CPU ,倒是可以考虑这个方案。
dbit
59 天前
感觉 iPhone15 一分半就解开了? 尽管没领到红包
rekulas
59 天前
这个问题我以前也有研究过,因为想做一个区块链上的密码包,目前来说要想真正设置一个时间胶囊只能靠算力限制(挖矿- _ -), 要想快速生成就要降低整个链条的相关性, 但要想防并发破解又要提高相关性(串行解密), 所以找到一个合适的平衡点很重要, 能不能找到一个又快又防爆破的算法,目前来看很难(可能以后量子领域有更好的办法吧), 另外还存在一个问题就是预测遥远未来的算力增长趋势误差太大,容易导致密码被过早(例如帖子中的那样)或过晚解密出来

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

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

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

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

© 2021 V2EX