ctf md5爆破
1.知道组成的字符为数字,然后知道加密后的MD5,求组成的字符
import hashlibimport stringdef crackMd5(dst):dst = dst.lower()for a in range(0,10):for b in range(0,10):for c in range(0,10):for d in range(0,10):word = str(a) + str(b) + str(c) + str(d) + "_heetian"tmp = hashlib.md5(word).hexdigest()if dst == tmp:return wordreturn Noneif __name__ == "__main__":raw_input(crackMd5("158e64cfc9991940700acc5dc0f310e3"))
2.知道字符长度为0-6,然后给出字符集,用暴力的办法解出该MD5字符
# -*- coding:utf-8 -*-
__author__ = 'Administrator'
#from ultrapower.fd
import itertools as its
import md5#暴力破解
def uncipher(maxlenth,salt,ciphertext_s,str_letter):ciphertext_s=ciphertext_ssalt = saltmaxlenth=int(maxlenth)str_letter=str_letterciphertext=''for i in range(1, maxlenth+1):# 迭代生成明文(例如abc,repeat=2 结果为(a,a)(a,b)(a,c)(b,b)(b,a)(b,c)(c,c)(c,a)(c,b)r = its.product(str_letter, repeat=i)for j in r:plaintext = "".join(j) #连接成字符串plaintext = "%s%s" % (plaintext, salt) #把盐加到明文的后面 每次生成的最终明文#print plaintext #打印明文# 开始解密,方法是,每个明文进来,加密成密文,然后密文与密文做对比md501 = md5.new()md501.update(plaintext)ciphertext = md501.hexdigest()# 对比密文确认明文if ciphertext == ciphertext_s: #如果密文一致 退出2层循环breakif ciphertext == ciphertext_s: #如果密文一致,退出1层循环,打印结果print "task finished(plain,cipher)"print "%s:%s" % (plaintext, ciphertext) #打印结果break#开始执行主函数
#str_letter="abcdefghijklmnopqrstuvwxyz0123456789"
#str_letter="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
#str_letter="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
str_letter="abcdefghijklmnopqrstuvwxyz" #明文的字符范围
maxlenth=6 #明文的最大长度,一般不会超过6位,否则短时间很难暴力破解
salt='5948' #加盐 #如果不加盐,为空就是正常的md5解密
ciphertext_s='81bdf501ef206ae7d3b92070196f7e98' #密文
uncipher(maxlenth,salt,ciphertext_s,str_letter) #开始解密
3.
给md5编码,明文缺省 ,求明文
已知一段md5密文
fa2cdddd07f211664697797a54de08ea
已知线索 明文为: flag{Th?s A Pen},求明文
import hashlibfor i in range(32, 127): # 使用for循环逐个尝试所有的字母,chr(i)返回值是当前整数对应的 ASCII 字符。m = hashlib.md5() # 获取一个md5加密算法对象m.update(str('flag{Th' + chr(i) + 's A Pen}').encode('utf-8')) # 指定需要加密的字符串des = m.hexdigest() # 进行md5加密if des == 'fa2cdddd07f211664697797a54de08ea': # 如果得到的密文和我们预期的密文相同,输出print('flag{Th' + chr(i) + 's A Pen}')
运行结果为
2. 根据部分密文和明文得到md5加密的完整明文
这里有一段丢失的md5密文
7257f353cab82f3087cb2113533???
要求你还原出他的明文
已知线索 明文为: flag{HELLO WOR??}
import hashlibfor i in range(32, 127):for j in range(32, 127):m = hashlib.md5() # 获取一个md5加密算法对象m.update(str('flag{HELLO WOR' + chr(i) + chr(j) + '}').encode("utf-8")) # 指定需要加密的字符串des = m.hexdigest()if '7257f353cab82f3087cb2113533' in des: # 如果得到的密文和我们预期的密文相同,输出print(des)
运行结果为
3.
这里有一段丢失的sha1密文
89aa???0bfd7da1409???c8c76e0461aaf9???
要求你还原出他的原值和hash值
已知线索 明文为: fl??{HELLO ?ORLD}
# @Time : 2022/3/11 11:07
# @Author : 南黎
# @FileName: 3.py
import hashlibfor i in range(32, 127):for j in range(32, 127):for k in range(32, 127):m = hashlib.sha1() # 获取一个md5加密算法对象m.update(('fl' + chr(i) + chr(j) + '{HELLO ' + chr(k) + 'ORLD}').encode("utf8")) # 指定需要加密的字符串des = m.hexdigest()if "89aa" in des and "0bfd7da1409" in des and "c8c76e0461aaf9" in des: # 如果得到的密文和我们预期的密文有相同的字符串子串,输出print(des)print('fl' + chr(i) + chr(j) + '{HELLO ' + chr(k) + 'ORLD}')m = hashlib.sha1()
运行结果为
还可以改良一下代码
if "89aa" in des and "0bfd7da1409" in des and "c8c76e0461aaf9" in des: # 如果得到的密文和我们预期的密文有相同的字符串子串,输出print(des)
相关文章链接:https://blog.csdn.net/u011027547/article/details/123419072
相关文章:

ctf md5爆破
1.知道组成的字符为数字,然后知道加密后的MD5,求组成的字符 import hashlibimport stringdef crackMd5(dst):dst dst.lower()for a in range(0,10):for b in range(0,10):for c in range(0,10):for d in range(0,10):word str(a) str(b) str(c) str(d) "_heetian&q…...

不同碳化硅晶体面带来的可能性
对于非立方晶体,它们天生具有各向异性,即不同方向具有不同的性质。以碳化硅晶体面为例: 4H-SIC和6H-SIC的空间群是P63mc,点群是6mm。两者都属于六方晶系,具有各向异性。3C-SIC的空间群是F-43m,点群是-43m。…...

Kafka集群
Kafka集群 1、Kafka 概述1.1消息队列背景1.2类型1.3Kafka 定义1.4Kafka 简介 2、消息队列好处3、消息队列的模式4、Kafka 的特性5、Kafka 系统架构4、部署 kafka 集群4.1下载安装包4.2 安装 Kafka4.2.1 修改配置文件4.2.2 修改环境变量4.2.3 配置 zookeeper启动脚本4.2.4 设置…...

国腾GM8775C完全替代CS5518 MIPIDSI转2 PORT LVDS
集睿致远CS5518描述: CS5518是一款MIPI DSI输入、LVDS输出转换芯片。MIPI DSI 支持多达4个局域网,每条通道以最 大 1Gbps 的速度运行。LVDS支持18位或24位像素,25Mhz至154Mhz,采用VESA或JEIDA格 式。它只能使用单个1.8v电源&am…...
搜索与图论:匈牙利算法
将所有点分成两个集合,使得所有边只出现在集合之间,就是二分图 二分图:一定不含有奇数个点数的环;可能包含长度为偶数的环, 不一定是连通图 二分图的最大匹配: #include<iostream> #include<cs…...
明星艺人类的百度百科怎么创建 ?
明星艺人们的知名度对于其事业的成功至关重要,而作为国内最大的中文百科全书网站,百度百科成为了人们获取信息的重要来源。一线明星当然百科不用自己操心,平台和网友就给维护了,但是刚刚走红的明星艺人应提早布局百科词条…...

类EMD的“信号分解方法”及MATLAB实现(第八篇)——离散小波变换DWT(小波分解)
在之前的系列文章里,我们介绍了EEMD、CEEMD、CEEMDAN、VMD、ICEEMDAN、LMD、EWT,我们继续补完该系列。 今天要讲到的是小波分解,通常也就是指离散小波变换(Discrete Wavelet Transform, DWT)。在网上有一些介绍该方法…...

python随手小练10(南农作业题)
题目1: 编写程序,输出1~1000之间所有能被4整除,但是不能被5整除的数 具体操作: for i in range(1,1000): #循环遍历1~999,因为range是左闭右开if (i % 4 0) and (i % 5 ! 0) :print(i) 结果展示: 题目2&…...
How to install mongodb-7.0 as systemd service with podman
How to install mongodb-7.0 as systemd service with podman 1、安装1.1、创建卷1.2、配置文件1.3、创建容器1.4、服务管理1.5、容器管理 2、客户端管理 1、安装 1.1、创建卷 配置卷 podman volume create --label typemongo-7.0 --label envdev mongo-7.0-conf数据卷 pod…...
一文彻底理解python浅拷贝和深拷贝
目录 一、必备知识二、基本概念三、列表,元组,集合,字符串,字典浅拷贝3.1 列表3.2 元组3.3 集合3.4 字符串3.5 字典3.6 特别注意浅拷贝总结 四、列表,元组,集合,字符串,字典深拷贝 一…...
什么是软件的生命周期?全方位解释软件的生命周期
软件的生命周期 软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。 如果把软件看成是有生命的事 物,那么软件的生命周期可以分成6个阶段,即需求分析、计划、设计、编码、测试、运行维护 需求分析阶段: 分析需求的可行性&…...

网络安全—小白自学
1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…...

List 3.5 详解原码、反码、补码
前言 欢迎来到我的博客,我是雨空集(全网同名),无论你是无意中发现我,还是有意搜索而来,我都感到荣幸。这里是一个分享知识、交流想法的平台,我希望我的博客能给你带来帮助和启发。如果你喜欢我…...

数据清洗与规范化详解
数据处理流程,也称数据处理管道,是将原始数据转化为有意义的信息和知识的一系列操作步骤。它包括数据采集、清洗、转换、分析和可视化等环节,旨在提供有用的见解和决策支持。在数据可视化中数据处理是可视化展示前非常重要的一步,…...
Ansible playbook的block
环境 控制节点:Ubuntu 22.04Ansible 2.10.8管理节点:CentOS 8 block 顾名思义,通过block可以把task按逻辑划分到不同的“块”里面,实现“块操作”。此外,block还提供了错误处理功能。 task分组 下面的例子&#x…...

Jupyter Notebook还有魔术命令?太好使了
在Jupyter Notebooks中,Magic commands(以下简称魔术命令)是一组便捷的功能,旨在解决数据分析中的一些常见问题,可以使用%lsmagic 命令查看所有可用的魔术命令 插播,更多文字总结指南实用工具科技前沿动态…...
DailyRecord-231029
iOS&前端: 数组 iOS/Xcode异常:对象数组NSMutableArray添加元素-addObject,但count方法仍然返回0? - 周文 - 博客园(需要初始化) [__NSArrayI addObject:]: unrecognized selector sent to instance (检查addObj…...

雨云虚拟主机使用教程WordPress博客网站搭建教程
雨云虚拟主机(RVH)使用教程与宝塔面板搭建WordPress博客网站的教程,本文会讲解用宝塔面板一键部署以及手动安装两种方式来搭建WordPress博客,选其中一种方式即可。 WordPress WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MyS…...

【SPSS】基于RFM+Kmeans聚类的客户分群分析(文末送书)
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
回溯法(1)--装载问题和0-1背包
一、回溯法 回溯法采用DFS+剪枝的方式,通过剪枝删掉不满足条件的树,提高本身作为穷举搜索的效率。 回溯法一般有子集树和排列树两种方式,下面的装载问题和01背包问题属于子集树的范畴。 解空间类型: 子集树࿱…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...