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背包问题属于子集树的范畴。 解空间类型: 子集树࿱…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
二叉树-144.二叉树的前序遍历-力扣(LeetCode)
一、题目解析 对于递归方法的前序遍历十分简单,但对于一位合格的程序猿而言,需要掌握将递归转化为非递归的能力,毕竟递归调用的时候会调用大量的栈帧,存在栈溢出风险。 二、算法原理 递归调用本质是系统建立栈帧,而非…...
新版NANO下载烧录过程
一、序言 搭建 Jetson 系列产品烧录系统的环境需要在电脑主机上安装 Ubuntu 系统。此处使用 18.04 LTS。 二、环境搭建 1、安装库 $ sudo apt-get install qemu-user-static$ sudo apt-get install python 搭建环境的过程需要这个应用库来将某些 NVIDIA 软件组件安装到 Je…...
Linux信号保存与处理机制详解
Linux信号的保存与处理涉及多个关键机制,以下是详细的总结: 1. 信号的保存 进程描述符(task_struct):每个进程的PCB中包含信号相关信息。 pending信号集:记录已到达但未处理的信号(未决信号&a…...
