`

彩虹表

 
阅读更多

哈希(Hash)算法就是单向散列算法,它把某个较大的集合P映射到另一个较小的集合Q中,加入这个算法叫H,就有Q=H(P)。对于P中任何一个值p都有唯一确定的q与之对应,但是一个q可以对应多个p。作为一个有用的Hash算法,H还应该满足:H(P)速度比较快;给出一个q,很难反推出一个p满足q=H(p);给出一个p1,很难算出一个不等p1的p2使得H(p1)=H(p2)。正因为这些特性,hash算法经常被用来保存密码,这样既不会泄露密码明文,又可以校验输入的密码是否正确。常用的hash算法有MD5、SHA1等。

 

破解Hash的任务就是给出一个q,反推出一个p来满足q=H(p)。通常我们能想到两个办法,一种就是暴力破解法,把每个p都算下H(p),知道结果等于q;另一种是查表法,搞一个很大的数据库,把每个p和对应的q都记录下来,按q做一下索引,查下表就行。理论上两种办法都行,但是实际操作上,前一种需要海量时间,后一种需要海量空间,以至于人类资源无法实现

 

彩虹表的根本原理就是组合暴力法和查表法,并在这两者一种取得一个折中。

 

它的做法是,对于一个Q=H(P),建立另一个算法R使得P=R(Q),然后对于一个p,这样进行计算:

p0 - H - > q1 - R -> p1 ... - H - > qn - R -> pn

简单的说,就是q用H、R依次迭代运算,最后得到pn,n可能比较大。最后我们把p0和pn都存储下来,其他的结果都丢弃。然后用不同的p0代入计算,得到多个这样的p的对子

 

破解的时候,给出一个q,我们来寻找p,先把q做一次R运算得到一个值c1,假如和某一个pn相等,那么就可能这个pn对应的p(n-1)就是我们寻找的p,为了验证我们把pn对应的p0再做一次链式计算,比对qn是否就是给出的q,如果是,很明显p(n-1)就是我们在追寻的p,如果不是就继续遍历所有的p0pn对

如果还没有,我们再算q - R -> c1 - H -> qx - R -> c2,再对比c2是否是pn如果是,那么p(n-2)就可能是p,依次类推

 

总的来说,就是用一个p0pn对来存储一个链子的数据,如果n很大,就可以大大减小存储空间。这样带来的问题是必须做n次对比,事件更长,不过我们不需要瞬间破解,等待几秒乃至几天破解一个密码都是可以接受的

 

当然这只是最粗浅的原理,仔细想还有很多问题,比如R的选择,Hash冲突的处理,如何选择po来实现足够的覆盖,如何在有限资源下生成彩虹表等。感兴趣的可以看看RainbowCrack的源码http://www.project-rainbowcrack.com/

 

分享到:
评论

相关推荐

    彩虹表下载地址(6种)

    ### 彩虹表下载地址详解 #### 一、概述 彩虹表是一种用于破解密码的预计算表,通过这种表可以在不进行实时计算的情况下快速恢复密码。本文将详细介绍彩虹表的几种下载资源及其特点,帮助读者根据自身需求选择合适...

    RainbowGen彩虹表生成器

    RainbowGen彩虹表生成器

    构造生成彩虹表

    构造生成彩虹表 彩虹表是一种预先计算的表,用于破解密码的哈希值。它的根本原理是组合了暴力法和查表法,并在这两者之中取得一个折中,用我们可以承受的时间和存储空间进行破解。构造生成彩虹表需要了解彩虹表的...

    彩虹表下载

    彩虹表

    120g彩虹表

    【描述】"120g彩虹表下载"意味着这个彩虹表文件的大小约为120GB,这表明它包含了大量的哈希值记录,覆盖了广泛的密码组合。描述中的"有需要的的拿走吧。我试过了 挺好用的 谢谢"暗示这个彩虹表已经被验证过,且在...

    ophcrack 7.15G 彩虹表种子

    Ophcrack是一个使用Rainbow table(彩虹表)来破解视窗作业系统下的LAN Manager散列(比如hash文件)的程序,它是基于GPL下发布的开放原始码程式。 该彩虹表在官网上下载需收费,可在较短时间内破解数字加字母加特殊...

    彩虹表120GBT下载种子

    彩虹表就是一个庞大的、针对各种可能的字母组合预先计算好的哈希值的集合,不一定是针对MD5算法的,各种算法的都有,有了它可以快速的破解各类密码。越是复杂的密码,需要的彩虹表就越大,现在主流的彩虹表都是100G...

    彩虹表生成搜索算法基于socket(python)

    标题"彩虹表生成搜索算法基于socket(python)"揭示了我们将要探讨的是如何使用Python编程语言和socket编程来实现彩虹表的生成和搜索功能。Socket编程是网络通信的基础,允许程序之间通过网络进行数据传输。在本场景...

    cuda MD5彩虹表生成代码

    MD5彩虹表生成代码是一种利用CUDA技术在GPU上并行计算MD5散列值的程序。CUDA(Compute Unified Device Architecture)是由NVIDIA推出的并行计算平台和编程模型,它允许开发者利用图形处理器(GPU)的强大计算能力来...

    2TB彩虹表BT种子(破手机GSM用,德国产)

    2TB彩虹表BT种子(破手机GSM用,德国产)

    彩虹表ophcrack-3.8.0密码破解之王

    彩虹表(Rainbow Table)是一种破解哈希算法的技术,是一款跨平台密码破解器,主要可以破解MD5、HASH等多种...更神奇的是,彩虹表技术并非针对某种哈希算法的漏洞进行攻击,而是类似暴力破解,对于任何哈希算法都有效。

    华中科技大学密码学课设彩虹表.cpp

    华中科技大学密码学课设彩虹表,可以通过onlineJudge测试满分。

    基于彩虹表技术的分布式密码破解研究.pdf

    在《基于彩虹表技术的分布式密码破解研究》中,作者提出了在经典彩虹表算法的基础上,利用分布式编程模型构造彩虹表。采用MPI(Message Passing Interface,消息传递接口)编程模型,并行计算分布在集群中的每台...

    彩虹表种子

    虽然我那个求彩虹表的帖子里有7.5G+8G的。。而120G的网上也能搜索到。。不过250G的那个还不是很多。。 为了方便大家。所以就把我弄到的种子打包发上来了。 包里有: XP special (7.5GB) formerly known as WS-20k ...

    网络安全-加密-彩虹表-表

    2022最新彩虹表

    33G彩虹表下载种子

    33G彩虹表下载种子

    彩虹表原理及应用

    网络安全彩虹表原理及应用课件,哈希算法的破解以及用户名密码的破解

    android图形密码破解彩虹表

    此彩虹表用于安卓设备图形密码破解

    120GB彩虹表下载地址120GB rainbow table download link

    120GB彩虹表下载地址,rainbow table download link

Global site tag (gtag.js) - Google Analytics