密码学基础:彩虹表技术

news2024/12/22 16:16:42

文章目录

  • 一、前期准备
    • 1.1 前缀知识
    • 1.2 工具准备
  • 二、彩虹表技术
    • 2.1 什么是彩虹表?
    • 2.2 彩虹表预先计算的散列链原理
    • 2.3 其他通过加密摘要攻击用户密码的技术
    • 2.4 彩虹表存储规格
    • 2.6 彩虹表生成、排序、合并和转换命令
  • 三、彩虹表攻击示例
    • 3.1 安装 rainbowcrack
    • 3.2 生成指定算法的彩虹表
  • 五、阅读资源
  • 六、结语

一、前期准备

1.1 前缀知识

哈希函数:是一种从任何一种数据中创建数字“指纹” 的方法。 散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。 该函数将数据打乱混合,重新创建一个叫做散列值(或哈希值)的指纹。 散列值通常用一个短的随机字母和数字组成的字符串来代表。

1.2 工具准备

kali

二、彩虹表技术

2.1 什么是彩虹表?

彩虹表是一种预先计算的表,用于缓存加密哈希函数的输出,通常用于破解长度固定且包含的字符范围固定的密码(如信用卡、数字等)。表通常用于恢复由有限字符集组成的长度不超过一定长度的密钥派生函数。它是空间与时间权衡的一个实际例子,与每次尝试都计算哈希值的暴力攻击相比,它使用更少的计算机处理时间和更多的存储空间。

彩虹表是马丁·赫尔曼早期提出的简单算法的应用。

注意:黑客逆向出散列的密码时,并不能仅通过输入散列后的用户加密摘要来提升权限,如果这样,认证系统会将加密摘要再次进行加密,产生与存储的加密摘要不匹配的摘要。为了提升权限,黑客需要产生一个相同加密摘要的密码。

2.2 彩虹表预先计算的散列链原理

这里简单说一下
获取字符串的哈希值 在哈希值中通过简单函数减少它创建一个新的字符串,使用相同的哈希算法对这个新的哈希字符串进行哈希值计算,依次重复此操作直到达到链的末端。
wikipedia 解释

假设有哈希方程H和有限的密码集合P,需要预先计算出一个数据结构来决定哈希方程H的任一输出结果h是否可以通过密码集合P里面的一个元素p经哈希函数H§=h得到。实现这一目的的最简单的方法是计算出P集合内所有密码p的哈希值H§。但是这个方法需要的储存空间为Θ(|P|n),(n代表哈希函数H的一个输出值的大小)对于较大的|P|,其对于存储空间的要求会过高

哈希链可以用来减少对于储存空间的需求。大致想法是通过定义一个归约函数(上述所说的简单函数)(reduction
function)R来映射散列值h在集合P中对应的密码p。(注意,这里的归约函数并不是真正意义上哈希函数的反函数。)通过交替施行哈希函数与归约函数,形成交替的明文与哈希值。

在这里插入图片描述
这里的归约函数的唯一要求就是能将任意散列值映射为特定字符的纯文本值。

2.3 其他通过加密摘要攻击用户密码的技术

穷举攻击:穷举攻击尝试每一种可能的密码组合,逐个将其转换为哈希值,直到找到匹配的哈希值为止。缺点是需要读取依次读取每行数据。

哈希链攻击(Hash Chain Attack):是一种类似彩虹表的技术,通过生成哈希链,将哈希结果再输入到哈希函数中,直到生成较短的哈希表。这种链表可以在生成和查找过程中减少存储空间,但牺牲了查找时间。

掩码攻击(Mask Attack):穷举攻击的优化,在已知密码的结构的情况下进行高效爆破。

长度扩展攻击(Length extension attack):攻击者可以利用H(消息1)和消息1的长度,不知道消息1内容的情形下,将攻击者控制的消息2计算出H(消息1 ‖ 消息2)。

总的来说,彩虹表攻击是最快的散列值爆破技术,但是占用的存储空间也更多,一般的彩虹表规格都要达到几百GB。

2.4 彩虹表存储规格

算法表 ID字符集明文长度密钥空间成功率表大小
LMimglm_ascii-32-65-123-4#1-7ASCII-32-65-123-41 至 77,555,858,447,479 ≈ 2 42.899.9%27 GB
NTLMimgntlm_ascii-32-95#1-7ASCII-32-951 至 770,576,641,626,495 ≈ 2 46.099.9%52 GB
NTLMimgntlm_ascii-32-95#1-8ASCII-32-951 至 86,704,780,954,517,120 ≈ 2 52.696.8%460 GB
NTLMimgntlm_mixalpha-numeric#1-8混合字母数字1 至 8221,919,451,578,090 ≈ 2 47.799.9%127 GB
NTLMimgntlm_mixalpha-数字#1-9混合字母数字1 至 913,759,005,997,841,642 ≈ 2 53.696.8%690 GB
NTLMimgntlm_loweralpha-数字#1-9小写字母数字1 至 9104,461,669,716,084 ≈ 2 46.699.9%65 GB
NTLMimgntlm_loweralpha-数字#1-10小写字母数字1 至 103,760,620,109,779,060 ≈ 2 51.796.8%316 GB
MD5imgmd5_ascii-32-95#1-7ASCII-32-951 至 770,576,641,626,495 ≈ 2 46.099.9%52 GB
MD5imgmd5_ascii-32-95#1-8ASCII-32-951 至 86,704,780,954,517,120 ≈ 2 52.696.8%460 GB
MD5imgmd5_mixalpha-数字#1-8混合字母数字1 至 8221,919,451,578,090 ≈ 2 47.799.9%127 GB
MD5imgmd5_mixalpha-数字#1-9混合字母数字1 至 913,759,005,997,841,642 ≈ 2 53.696.8%690 GB
MD5imgmd5_loweralpha-numeric#1-9小写字母数字1 至 9104,461,669,716,084 ≈ 2 46.699.9%65 GB
MD5imgmd5_loweralpha-numeric#1-10小写字母数字1 至 103,760,620,109,779,060 ≈ 2 51.796.8%316 GB
SHA1imgsha1_ascii-32-95#1-7ASCII-32-951 至 770,576,641,626,495 ≈ 2 46.099.9%52 GB
SHA1imgsha1_ascii-32-95#1-8ASCII-32-951 至 86,704,780,954,517,120 ≈ 2 52.696.8%460 GB
SHA1imgsha1_mixalpha-数字#1-8混合字母数字1 至 8221,919,451,578,090 ≈ 2 47.799.9%127 GB
SHA1imgsha1_mixalpha-数字#1-9混合字母数字1 至 913,759,005,997,841,642 ≈ 2 53.696.8%690 GB
SHA1imgsha1_loweralpha-数字#1-9小写字母数字1 至 9104,461,669,716,084 ≈ 2 46.699.9%65 GB
SHA1imgsha1_loweralpha-数字#1-10小写字母数字1 至 103,760,620,109,779,060 ≈ 2 51.796.8%316 GB

2.6 彩虹表生成、排序、合并和转换命令

算法表 ID表生成表排序表合并表转换
LMimg lm_ascii-32-65-123-4#1-7rtgenrtsort .rtmerge .rt2rtc . -s 30 -e 34 -c 4096 -p
NTLMimg ntlm_ascii-32-95#1-7rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
NTLMimg ntlm_ascii-32-95#1-8rtgenrtsort .rtmerge .rt2rtc . -s 35 -e 37 -c 8192 -p
NTLMimg ntlm_mixalpha-numeric#1-8rtgenrtsort .rtmerge .rt2rtc . -s 32 -e 32 -c 4096 -p
NTLMimg ntlm_mixalpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 36 -e 36 -c 8192 -p
NTLMimg ntlm_loweralpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
NTLMimg ntlm_loweralpha-numeric#1-10rtgenrtsort .rtmerge .rt2rtc . -s 34 -e 38 -c 8192 -p
MD5img md5_ascii-32-95#1-7rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
MD5img md5_ascii-32-95#1-8rtgenrtsort .rtmerge .rt2rtc . -s 35 -e 37 -c 8192 -p
MD5img md5_mixalpha-numeric#1-8rtgenrtsort .rtmerge .rt2rtc . -s 32 -e 32 -c 4096 -p
MD5img md5_mixalpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 36 -e 36 -c 8192 -p
MD5img md5_loweralpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
MD5img md5_loweralpha-numeric#1-10rtgenrtsort .rtmerge .rt2rtc . -s 34 -e 38 -c 8192 -p
SHA1img sha1_ascii-32-95#1-7rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
SHA1img sha1_ascii-32-95#1-8rtgenrtsort .rtmerge .rt2rtc . -s 35 -e 37 -c 8192 -p
SHA1img sha1_mixalpha-numeric#1-8rtgenrtsort .rtmerge .rt2rtc . -s 32 -e 32 -c 4096 -p
SHA1img sha1_mixalpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 36 -e 36 -c 8192 -p
SHA1img sha1_loweralpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
SHA1img sha1_loweralpha-numeric#1-10rtgenrtsort .rtmerge .rt2rtc . -s 34 -e 38 -c 8192 -p

三、彩虹表攻击示例

3.1 安装 rainbowcrack

sudo apt-get install rainbowcrack

3.2 生成指定算法的彩虹表

语法:

rtgen 散列算法 字符集 最小长度 最大长度 表索引(标识生成的表)散列链长度 散列链数量 分隔表索引

示例

sudo rtgen md5 loweralpha 1 3 0 1000 1000 0

在这里插入图片描述
彩虹表存放位置

在这里插入图片描述
彩虹表索引排序

sudo rtsort .

在这里插入图片描述
创建一个md5散列值用于解密

echo -n "qbc" | md5sum 

在这里插入图片描述
使用rcrack爆破散列值

sudo rcrack . -h 45f78ad16bf4471d9407c0a4025d9f01

在这里插入图片描述
仅需要0.04秒就爆破出来

五、阅读资源

生成表来源:彩虹表官网
部分内容摘自:https://zh.wikipedia.org/wiki/%E5%BD%A9%E8%99%B9%E8%A1%A8

六、结语

感谢你花时间阅读这篇关于彩虹表攻击技术的文章!希望通过这篇文章,你能够初步的了解FTP响应代码的作用。希望能为你带来实用的帮助和新的知识。

在这里也需要说明一下,尽管我努力确保每个步骤和细节都准确无误,但难免会有描述不当或疏漏之处。如果在操作过程中遇到任何问题,欢迎提出宝贵意见和建议,帮助我改进和完善这篇文章。再次感谢你的支持和理解!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2041413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git是如何工作的

Git 是一个分布式的版本控制系统,这意味着它使用多个本地存储库,包括一个集中式存储库和服务器,它在从前端工作中抽象出底层机制方面做得非常出色。虽然 Git 已经演变成一个成熟的版本控制管理系统,但这并不是作者最初的意图&…

网络硬盘录像机NVR程序源码和NVR模组展示及设备开机配置和主界面使用介绍

NVR软硬一体机支持录像设置,还具有录像回放、录像备份和报警设置等多种功能。接下来,我们首先看一下硬件连接,并开机后的基础配置操作。 NVR的优势(包括不限于): 1.支持录像回放 支持设置冗余录像&#…

Java开发中使用腾讯云OCR进行身份证识别与COS云存储实践

文章目录 完整代码代码讲解总结 在Java开发中,处理身份证识别和云存储是一项常见的需求,尤其是在需要用户身份验证的应用场景中。今天,我想和大家分享一个实际的案例,展示如何利用腾讯云的OCR服务进行身份证识别,并将识…

记一次:Datawhale AI夏令营-第四期-魔搭-AIGC-Task03

前言:书接上回,前面说了AIGC的了解和精读baseline,那么我们可以再次的抽丝拔茧,开始了解GUI部分和微调部分。 一、ComfyUI应用部分 1、什么是GUI? 2、什么是ComfyUI? 3、ComfyUI核心模块 4、ComfyUI图片生…

搭建高可用OpenStack(Queen版)集群(七)之部署dashbord(Horizon)控制节点集群

一、搭建高可用OpenStack(Queen版)集群之部署dashbord(Horizon)控制节点集群 一、Dashboard(horizon)简介 Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的openstack资源及服务。 二、部署da…

AAAI Reproducibility Checklist Latex 模板

官网介绍 AAAI-25 Reproducibility Checklist - AAAI This paper: Includes a conceptual outline and/or pseudocode description of AI methods introduced (yes/partial/no/NA)Clearly delineates statements that are opinions, hypothesis, and speculation from object…

Science Robotics封面 | 当机器人学会用‘快照‘导航,轻重量小内存实现‘长途跋涉‘

一个仅重56克的微型无人机实现了自主视觉导航,这听起来似乎不可思议。 然而,荷兰代尔夫特理工大学的研究人员通过向大自然学习,成功让这样一个轻如鸿毛的小家伙完成了长达100米的自主视觉路径跟随。 这一突破性成果不仅为微型机器人的自主导…

【Vue3】高颜值后台管理模板推荐

ELP - 权限管理系统 基于Vue 3框架与PrimeVue UI组件库技术精心构建的高颜值后台权限管理系统模板。该模板系统已成功实现基于RBAC(Role-Based Access Control)模型的权限管理系统和字典数据管理模块,后端则使用了Spring Boot框架&#xff0…

008 | 基于RNN和LSTM的贵州茅台股票开盘价预测

👉👉👉 《玩转Python金融量化专栏》👈👈👈 订阅本专栏的可以下载对应的代码和数据集 🚀 上一篇🌟 下一篇⬅️ 007 期权定价与布莱克-斯科尔斯计算009 上证50ETF基金数据分析及预测…

WebRTC音视频开发读书笔记(一)

一、基本概念 WebRTC(Web Real-Time Communication,网页即时通信)于2011年6月1日开源,并被纳入万维网联盟的W3C推荐标准,它通过简单API为浏览器和移动应用提供实时通信RTC功能。 1、特点 跨平台:可以在Web,Android、…

Unity扩展 Text 彩虹文本

本文章用于原生组件 Text 的扩展 TextRainbow,对于新版TextMeshPro不适用。 一、效果预览图: 默认: 随机: 循环: 二、原理 通过强制刷新顶点数据,来修改颜色。 通过Unity中自带的 BaseMeshEffect 抽…

五、OpenCVSharp 中的图像滤波与平滑

文章目录 简介一、均值滤波1. 原理和数学公式2. 不同大小的滤波核效果对比3. 边界处理方式二、高斯滤波1. 高斯核的生成2. 标准差对滤波效果的影响3. 高斯滤波的应用场景(如去除高斯噪声)三、中值滤波1. 中值的计算方法2. 中值滤波对椒盐噪声的处理效果3. 中值滤波的性能分析…

AWS Lambda 十年回顾:功能总览、更新记录与入门指南

这次,我为2014年11月发布的AWS Lambda创建了一个历史时间表。AWS Lambda 是一项无服务器、全托管的代码执行服务,今年2024年11月将迎来其宣布发布的十周年纪念。虽然提前了一些,但为了提前庆祝这一重要时刻,我写了这篇文章。 文章…

空间间隔组(Spacers)-Qt-思维导图-学习笔记

空间间隔组(Spacers) 空间间隔组(Spacers) (1)Horizontal Spacer:水平间隔 (2)Vertical Spacer:垂直间隔 QSpacerItem 控件简介 继承关系:QSpacerItem 继承自 QLayou…

面试必备之——TCP/UDP(二)

TCP流量控制 让发送方发送的速率不要太快,要让接收方开的及接收,防止发送方发送太快,导致接收方来不及接收。是端到端之间的控制 滑动窗口是实现流量控制的方法之一 TCP流量控制-滑动窗口 滑动窗口是传输层进行流控的一种措施,…

电脑版视频剪辑软件哪个好?适合新手使用的剪辑软件!

电脑版视频剪辑软件哪个好?在电脑版视频剪辑软件的选择上,每位用户都有其独特的偏好和需求。对于初学者而言,寻找一款操作简便、功能齐全的软件至关重要。为大家推荐几款常用的视频剪辑软件: 1、福昕视频剪辑 2、HitFilm 3、DaVin…

天了噜,IDEA竟然还有这种坑!

问题描述 IDEA 编辑器 idea Cannot resolve symbol 鼠标聚焦时,错误信息为:” idea Cannot resolve symbol “ IDEA自动修复功能 提示信息如下,然而并没有什么卵用。 问题梳理: IDEA 这个目录下的包都引入不了 import org.s…

Redis的分布式部署方案-哨兵

Redis 的主从复制模式下,⼀旦主节点由于故障不能提供服务,需要⼈⼯进⾏主从切换,同时⼤量 的客⼾端需要被通知切换到新的主节点上,对于上了⼀定规模的应⽤来说,这种⽅案是⽆法接受的, 于是 Redis 从 2.8 开…

uniapp加载第三方字体方案对比(附原生微信小程序方案)

文章目录 官方文档uniapp文档微信小程序文档 下载字体包引入方案限制微信小程序限制uniapp的限制 方案对比方案1:CSS本地加载方案2:CSS远程加载方案3:转换为base64,然后通过css引入方案4:使用uni.loadFontFace() 页面使…