git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
stevenkang
V2EX  ›  git

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

  •  
  •   stevenkang · Mar 23, 2020 · 4995 views
    This topic created in 2265 days ago, the information mentioned may be changed or developed.

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

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

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

    @hstdt 可能会判定滥用吧?那样的话就没法实现了。
    dorentus
        15
    dorentus  
       Mar 23, 2020
    如果只是为了通过 URL 能访问,那么路径 /e1/0a/dc/39/49/ba/59/ab/be/56/e0/57/f2/0f/88/3e.txt 和 /e10adc3949ba59abbe56e057f20f883e.txt 并没有本质的区别。不管下层如何实现,上层都能提供出这样的访问路径。

    此外,“密文” e10adc3949ba59abbe56e057f20f883e 对应的“明文”的数量是无限的。
    Vhc001
        16
    Vhc001  
       Mar 23, 2020
    @stevenkang #14 硬盘不够怎么 git push 上去? Github 网页版在线编辑吗?
    stevenkang
        17
    stevenkang  
    OP
       Mar 23, 2020
    @dorentus 方便分仓库

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

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