当前位置: 首页 > news >正文

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…...

搜索与图论:匈牙利算法

将所有点分成两个集合&#xff0c;使得所有边只出现在集合之间&#xff0c;就是二分图 二分图&#xff1a;一定不含有奇数个点数的环&#xff1b;可能包含长度为偶数的环&#xff0c; 不一定是连通图 二分图的最大匹配&#xff1a; #include<iostream> #include<cs…...

明星艺人类的百度百科怎么创建 ?

明星艺人们的知名度对于其事业的成功至关重要&#xff0c;而作为国内最大的中文百科全书网站&#xff0c;百度百科成为了人们获取信息的重要来源。一线明星当然百科不用自己操心&#xff0c;平台和网友就给维护了&#xff0c;但是刚刚走红的明星艺人应提早布局百科词条&#xf…...

类EMD的“信号分解方法”及MATLAB实现(第八篇)——离散小波变换DWT(小波分解)

在之前的系列文章里&#xff0c;我们介绍了EEMD、CEEMD、CEEMDAN、VMD、ICEEMDAN、LMD、EWT&#xff0c;我们继续补完该系列。 今天要讲到的是小波分解&#xff0c;通常也就是指离散小波变换&#xff08;Discrete Wavelet Transform, DWT&#xff09;。在网上有一些介绍该方法…...

python随手小练10(南农作业题)

题目1&#xff1a; 编写程序&#xff0c;输出1~1000之间所有能被4整除&#xff0c;但是不能被5整除的数 具体操作&#xff1a; for i in range(1,1000): #循环遍历1~999&#xff0c;因为range是左闭右开if (i % 4 0) and (i % 5 ! 0) :print(i) 结果展示&#xff1a; 题目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浅拷贝和深拷贝

目录 一、必备知识二、基本概念三、列表&#xff0c;元组&#xff0c;集合&#xff0c;字符串&#xff0c;字典浅拷贝3.1 列表3.2 元组3.3 集合3.4 字符串3.5 字典3.6 特别注意浅拷贝总结 四、列表&#xff0c;元组&#xff0c;集合&#xff0c;字符串&#xff0c;字典深拷贝 一…...

什么是软件的生命周期?全方位解释软件的生命周期

软件的生命周期 软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。 如果把软件看成是有生命的事 物&#xff0c;那么软件的生命周期可以分成6个阶段&#xff0c;即需求分析、计划、设计、编码、测试、运行维护 需求分析阶段&#xff1a; 分析需求的可行性&…...

网络安全—小白自学

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

List 3.5 详解原码、反码、补码

前言 欢迎来到我的博客&#xff0c;我是雨空集&#xff08;全网同名&#xff09;&#xff0c;无论你是无意中发现我&#xff0c;还是有意搜索而来&#xff0c;我都感到荣幸。这里是一个分享知识、交流想法的平台&#xff0c;我希望我的博客能给你带来帮助和启发。如果你喜欢我…...

数据清洗与规范化详解

数据处理流程&#xff0c;也称数据处理管道&#xff0c;是将原始数据转化为有意义的信息和知识的一系列操作步骤。它包括数据采集、清洗、转换、分析和可视化等环节&#xff0c;旨在提供有用的见解和决策支持。在数据可视化中数据处理是可视化展示前非常重要的一步&#xff0c;…...

Ansible playbook的block

环境 控制节点&#xff1a;Ubuntu 22.04Ansible 2.10.8管理节点&#xff1a;CentOS 8 block 顾名思义&#xff0c;通过block可以把task按逻辑划分到不同的“块”里面&#xff0c;实现“块操作”。此外&#xff0c;block还提供了错误处理功能。 task分组 下面的例子&#x…...

Jupyter Notebook还有魔术命令?太好使了

在Jupyter Notebooks中&#xff0c;Magic commands&#xff08;以下简称魔术命令&#xff09;是一组便捷的功能&#xff0c;旨在解决数据分析中的一些常见问题&#xff0c;可以使用%lsmagic 命令查看所有可用的魔术命令 插播&#xff0c;更多文字总结指南实用工具科技前沿动态…...

DailyRecord-231029

iOS&前端&#xff1a; 数组 iOS/Xcode异常:对象数组NSMutableArray添加元素-addObject&#xff0c;但count方法仍然返回0? - 周文 - 博客园&#xff08;需要初始化&#xff09; [__NSArrayI addObject:]: unrecognized selector sent to instance &#xff08;检查addObj…...

雨云虚拟主机使用教程WordPress博客网站搭建教程

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

【SPSS】基于RFM+Kmeans聚类的客户分群分析(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…...

回溯法(1)--装载问题和0-1背包

一、回溯法 回溯法采用DFS&#xff0b;剪枝的方式&#xff0c;通过剪枝删掉不满足条件的树&#xff0c;提高本身作为穷举搜索的效率。 回溯法一般有子集树和排列树两种方式&#xff0c;下面的装载问题和01背包问题属于子集树的范畴。 解空间类型&#xff1a; 子集树&#xff1…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...