V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
stevenkang
V2EX  ›  git

github 存储的文件有限制吗?能用来实现 md5 存储不

  •  
  •   stevenkang · 2020-03-23 14:24:41 +08:00 · 4351 次点击
    这是一个创建于 1713 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如 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 可得对应的明文。

    第 1 条附言  ·  2020-03-23 17:10:40 +08:00
    补充一下:
    1 、其实就是在线彩虹表,利用 github 来存储;
    2 、github 有一定限制,分账号分仓库存储也会判定滥用的话,这个就无法实现了;
    3 、这个其实没多大用途,网上彩虹表很多,唯一的优势可能就是成本低、可以一起维护;
    30 条回复    2020-03-24 17:47:37 +08:00
    IMCA1024
        1
    IMCA1024  
       2020-03-23 14:26:46 +08:00
    想不明白有什么用吖
    est
        2
    est  
       2020-03-23 14:27:21 +08:00
    研究下 Merkle tree
    loading
        3
    loading  
       2020-03-23 14:29:08 +08:00 via Android
    在线彩虹表?
    stevenkang
        4
    stevenkang  
    OP
       2020-03-23 14:29:26 +08:00
    @IMCA1024 方便查找明文,虽然没多大用途,但有时候还是有点用
    stevenkang
        5
    stevenkang  
    OP
       2020-03-23 14:30:12 +08:00
    @loading 是的,任意人可以参与的,作为一个数据集方便所有人使用
    dremy
        6
    dremy  
       2020-03-23 14:31:42 +08:00 via iPhone
    天才的想法
    wangyzj
        7
    wangyzj  
       2020-03-23 14:33:13 +08:00
    你这是要做 hash 碰撞测试吗
    fcten
        8
    fcten  
       2020-03-23 14:35:20 +08:00
    有,貌似是 100GB,用来存彩虹表是不够的
    hstdt
        9
    hstdt  
       2020-03-23 14:36:44 +08:00 via iPhone
    想不出使用场景,而且广泛使用后会影响搜索结果的吧,会不会被判定成滥用?
    dorentus
        10
    dorentus  
       2020-03-23 14:37:31 +08:00
    有限制。

    为什么要用 GitHub ?或者说,为什么要用 git 来承载这个……
    Mohanson
        11
    Mohanson  
       2020-03-23 14:37:59 +08:00 via Android   ❤️ 1
    彩虹表适合用压缩前缀树存储。你的想法脑洞太大,表示无法理解
    stevenkang
        12
    stevenkang  
    OP
       2020-03-23 14:38:34 +08:00
    @fcten 我看了网上也是说的硬限制 100G,超过 1G 会提醒。我在想能不能一个账号下建立多个仓库,或者多个账号 x 多个仓库,一人负责一段来实现。比如 A 账号 A1 仓库负责 00 开头的 md5,A 账号 A2 负责 01 以此类推
    hstdt
        13
    hstdt  
       2020-03-23 14:39:50 +08:00 via iPhone
    还想点没买弄清楚,直接存不可以么,为什么要切成 2 位一个做这么多文件夹
    stevenkang
        14
    stevenkang  
    OP
       2020-03-23 14:40:27 +08:00
    @dorentus 自己硬盘不够用,要共享这些数据还得搭建服务器。

    @hstdt 可能会判定滥用吧?那样的话就没法实现了。
    dorentus
        15
    dorentus  
       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 对应的“明文”的数量是无限的。
    Vhc001
        16
    Vhc001  
       2020-03-23 14:45:22 +08:00
    @stevenkang #14 硬盘不够怎么 git push 上去? Github 网页版在线编辑吗?
    stevenkang
        17
    stevenkang  
    OP
       2020-03-23 14:52:30 +08:00
    @dorentus 方便分仓库

    @Vhc001 拆分之后一个仓库负责一点
    hstdt
        18
    hstdt  
       2020-03-23 14:56:30 +08:00 via iPhone
    @stevenkang 既然说起因是硬盘不够用,意思是本地源文件也不进行存储,那你怎么恢复文件呢?比如一段 md5 是 987654,那你靠什么神仙代码能够反推出来源文件是什么呢?更进一步 md5 不唯一
    mengzhuo
        19
    mengzhuo  
       2020-03-23 15:09:55 +08:00
    又一个学太少想太多的……彩虹表也不是这么玩的。

    md5 的一个哈希(你所说的密文),对应无数可能,没准一个值就是 100G 的文件,直接撑爆。
    krixaar
        20
    krixaar  
       2020-03-23 15:20:17 +08:00
    反推某个 md5 的无限种可能的其中一种明文意义何在?
    如果是为了破解密码,敢只用一次 md5 作为加密的地方,估计根本不需要反推密码也能打进去啊?
    如果不是为了破解密码,哪儿还有使用场景?
    AnsonUTF8
        21
    AnsonUTF8  
       2020-03-23 16:28:47 +08:00 via iPhone
    大家不要打击楼主,再给楼主点时间,很快他就要提出 IPFS 了🤫
    tempdban
        22
    tempdban  
       2020-03-23 17:41:24 +08:00
    azh7138m
        23
    azh7138m  
       2020-03-23 17:49:39 +08:00 via Android
    @mengzhuo 反查很多时候不需要真的知道原文
    只要知道哪个文本 md5 的结果能对上就行了
    purensong
        24
    purensong  
       2020-03-23 18:00:55 +08:00
    天才的想法,这是和区块链有关吗
    zst
        25
    zst  
       2020-03-23 20:11:07 +08:00
    cmd5 的宣传可是占用硬盘超过 500T
    xyjincan
        26
    xyjincan  
       2020-03-23 21:38:16 +08:00
    请求速度可能就自己算出来了
    123444a
        27
    123444a  
       2020-03-23 22:02:02 +08:00 via Android
    彩虹表是利用一个新的哈希函数跟你要破解的哈希依次迭代
    maskerTUI
        28
    maskerTUI  
       2020-03-23 22:07:28 +08:00
    不如买多几个硬盘
    123444a
        29
    123444a  
       2020-03-23 22:18:33 +08:00 via Android
    @maskerTUI 彩虹表一般都是几百 g,不需要买新硬盘吧
    systemcall
        30
    systemcall  
       2020-03-24 17:47:37 +08:00
    要实现目的的话,把条件放开点来考虑试试。
    如果服务器本身不存储文件,每个 client 自己存储一些文件,client 之间通过网络来传输需要的文件,考虑到 md5 之类的方式会有多个文件对应一个 hash,就加上文件名。
    文件分成块,这样有利于传输。每个块做一个 hash,这样传输的时候好校验。
    client 之间加上交换节点的功能,这样可用性会好很多。
    就得到了磁力链。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1047 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:20 · PVG 07:20 · LAX 15:20 · JFK 18:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.