例如 123456 的 md5 为 e10adc3949ba59abbe56e057f20f883e, 如果 github 存储没有限制,能不能实现以下功能: 1 、每两个字符作为一个目录,之后一组字符作为文件; 2 、文件内容存储 md5 对应的明文,例如 3e.txt => 123456 ; 3 、参与者将计算的结果提交上来,或者分仓库;
最终达到的效果,获取一段 md5 密文 e10adc3949ba59abbe56e057f20f883e,通过访问 /e1/0a/dc/39/49/ba/59/ab/be/56/e0/57/f2/0f/88/3e.txt 可得对应的明文。
|  |      1IMCA1024      2020-03-23 14:26:46 +08:00 想不明白有什么用吖 | 
|  |      2est      2020-03-23 14:27:21 +08:00 研究下  Merkle tree | 
|  |      3loading      2020-03-23 14:29:08 +08:00 via Android 在线彩虹表? | 
|  |      4stevenkang OP @IMCA1024 方便查找明文,虽然没多大用途,但有时候还是有点用 | 
|  |      5stevenkang OP @loading 是的,任意人可以参与的,作为一个数据集方便所有人使用 | 
|      6dremy      2020-03-23 14:31:42 +08:00 via iPhone 天才的想法 | 
|  |      7wangyzj      2020-03-23 14:33:13 +08:00 你这是要做 hash 碰撞测试吗 | 
|  |      8fcten      2020-03-23 14:35:20 +08:00 有,貌似是 100GB,用来存彩虹表是不够的 | 
|      9hstdt      2020-03-23 14:36:44 +08:00 via iPhone 想不出使用场景,而且广泛使用后会影响搜索结果的吧,会不会被判定成滥用? | 
|  |      10dorentus      2020-03-23 14:37:31 +08:00 有限制。 为什么要用 GitHub ?或者说,为什么要用 git 来承载这个…… | 
|  |      11Mohanson      2020-03-23 14:37:59 +08:00 via Android  1 彩虹表适合用压缩前缀树存储。你的想法脑洞太大,表示无法理解 | 
|  |      12stevenkang OP @fcten 我看了网上也是说的硬限制 100G,超过 1G 会提醒。我在想能不能一个账号下建立多个仓库,或者多个账号 x 多个仓库,一人负责一段来实现。比如 A 账号 A1 仓库负责 00 开头的 md5,A 账号 A2 负责 01 以此类推 | 
|      13hstdt      2020-03-23 14:39:50 +08:00 via iPhone 还想点没买弄清楚,直接存不可以么,为什么要切成 2 位一个做这么多文件夹 | 
|  |      14stevenkang OP | 
|  |      15dorentus      2020-03-23 14:44:57 +08:00 如果只是为了通过 URL 能访问,那么路径 /e1/0a/dc/39/49/ba/59/ab/be/56/e0/57/f2/0f/88/3e.txt 和 /e10adc3949ba59abbe56e057f20f883e.txt 并没有本质的区别。不管下层如何实现,上层都能提供出这样的访问路径。 此外,“密文” e10adc3949ba59abbe56e057f20f883e 对应的“明文”的数量是无限的。 | 
|      16Vhc001      2020-03-23 14:45:22 +08:00 @stevenkang #14 硬盘不够怎么 git push 上去? Github 网页版在线编辑吗? | 
|  |      17stevenkang OP | 
|      18hstdt      2020-03-23 14:56:30 +08:00 via iPhone @stevenkang 既然说起因是硬盘不够用,意思是本地源文件也不进行存储,那你怎么恢复文件呢?比如一段 md5 是 987654,那你靠什么神仙代码能够反推出来源文件是什么呢?更进一步 md5 不唯一 | 
|      19mengzhuo      2020-03-23 15:09:55 +08:00 又一个学太少想太多的……彩虹表也不是这么玩的。 md5 的一个哈希(你所说的密文),对应无数可能,没准一个值就是 100G 的文件,直接撑爆。 | 
|      20krixaar      2020-03-23 15:20:17 +08:00 反推某个 md5 的无限种可能的其中一种明文意义何在? 如果是为了破解密码,敢只用一次 md5 作为加密的地方,估计根本不需要反推密码也能打进去啊? 如果不是为了破解密码,哪儿还有使用场景? | 
|  |      21AnsonUTF8      2020-03-23 16:28:47 +08:00 via iPhone 大家不要打击楼主,再给楼主点时间,很快他就要提出 IPFS 了🤫 | 
|      22tempdban      2020-03-23 17:41:24 +08:00 | 
|  |      24purensong      2020-03-23 18:00:55 +08:00 天才的想法,这是和区块链有关吗 | 
|  |      25zst      2020-03-23 20:11:07 +08:00 cmd5 的宣传可是占用硬盘超过 500T | 
|  |      26xyjincan      2020-03-23 21:38:16 +08:00 请求速度可能就自己算出来了 | 
|      27123444a      2020-03-23 22:02:02 +08:00 via Android 彩虹表是利用一个新的哈希函数跟你要破解的哈希依次迭代 | 
|  |      28maskerTUI      2020-03-23 22:07:28 +08:00 不如买多几个硬盘 | 
|      30systemcall      2020-03-24 17:47:37 +08:00 要实现目的的话,把条件放开点来考虑试试。 如果服务器本身不存储文件,每个 client 自己存储一些文件,client 之间通过网络来传输需要的文件,考虑到 md5 之类的方式会有多个文件对应一个 hash,就加上文件名。 文件分成块,这样有利于传输。每个块做一个 hash,这样传输的时候好校验。 client 之间加上交换节点的功能,这样可用性会好很多。 就得到了磁力链。 |