ctf md5爆破

news2024/11/26 20:25:01

1.知道组成的字符为数字,然后知道加密后的MD5,求组成的字符

import hashlib

import string


def 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 word

    return None


if __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_s
  salt = salt
  maxlenth=int(maxlenth)
  str_letter=str_letter
  ciphertext=''
  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层循环
        break
    if 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 hashlib

for 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 hashlib

for 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 hashlib

for 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

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

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

相关文章

【报错】kali安装ngrok报错解决办法(zsh: exec format error: ./ngrok)

问题描述 kali安装ngrok令牌授权失败 在安装配置文件的时候报错:zsh: exec format error: ./ngrok 原因分析: 在Kali Linux上执行./ngrok时出现zsh exec格式错误的问题可能是由于未安装正确版本的ngrok或操作系统不兼容ngrok导致的。以下是一些可能的解…

k8s安装时初始化报错:error execution phase preflight

服务器配置与k8s版本 系统版本: CentOS Linux release 7.9.2009 (Core)内核版本: [rootk8s-node02 tmp]# uname -r 5.4.259-1.el7.elrepo.x86_64k8s版本 v1.15.1 [rootk8s-node1 tmp]# kubeadm version kubeadm version: &version.Info{Major:&q…

(免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐

摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设农产品销售管理系统。…

人工智能(AI)在医疗领域的应用

人工智能(AI)在医疗领域的应用 人工智能(AI)在医疗领域的应用近年来得到了广泛的关注。其中,AI辅助治疗疾病的技术成为了研究热点。本文将介绍AI辅助治疗疾病的技术,包括其定义、应用场景、案例分析和发展…

jdk10的var局部变量类型推理

注:本人参考了openjdk官网,由于openjdk是开源的,所以不存在侵权行为,本章只为学习,我觉得没有什么比官网更具有话语权 1、jdk10的var的类型推测:就是这种处理将仅限于具有初始值设定项的局部变量、增强型 -…

Android问题笔记四十三:JNI 开发如何快速定位崩溃问题

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

opencv 滤波与blob检测总结

参考:https://learnopencv.com/contour-detection-using-opencv-python-c/ import cv2 impory numpy as np image cv2.imread(rxxx.jpg) # Sobel Edge Detection sobelx cv2.Sobel(srcimg_blur, ddepthcv2.CV_64F, dx1, dy0, ksize21) # Sobel Edge Detection o…

Python程序设计期末复习笔记

文章目录 一、数据存储1.1 倒计时1.2 os库1.3 字符串操作1.4 文件操作1.5 列表操作1.6 元组1.7 字典 二、文本处理及可视化2.1 jieba分词2.2 集合操作2.3 pdf文件读取2.4 参数传递2.5 变量作用域 三、数据处理分析3.1 Sumpy3.2 Matplotlib3.3 Numpy 四、Pandas4.1 索引操作4.2 …

【算法|动态规划 | 01背包问题No.1】AcWing 426. 开心的金明

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【AcWing算法提高学习专栏】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程&a…

Java Dubbo 微服务框架 HP-SOA

HP-SOA 功能完备,简单易用,高度可扩展的Java微服务框架。 【快速开始】 技术架构 技术集成 Web服务框架:spring-boot 3.x微服务框架:Dubbo 3.x服务注册中心:Nacos配置中心:Nacos服务治理中心&#xff1…

色彩校正及OpenCV mcc模块介绍

一、术语 1.光:是电磁波,可见光是可被人眼感知的电磁波。可见光大约在400-700nm波段。光子携带的能量与波长成反比,400nm--700nm之间的单色光的颜色从紫色渐变成红色。 2.光谱:除了太阳光源外,LED灯、白炽灯等各种照明…

基于Java的汉服文化平台网站设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

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

Docker:安装MySQL

Docker:安装MySQL 1. 部署MySQL2.部署多个MySQL服务 1. 部署MySQL 首先需要安装Docker,安装Docker地址:http://t.csdnimg.cn/utPGF 安装命令: docker run -d \--name mysql \-p 3306:3306 \-e TZAsia/Shanghai \-e MYSQL_ROOT…

AMD Ryzen AI 暂仅支持 Windows,Linux 系统有望后续支持

近日消息,最新的 AMD Ryzen 7040 系列笔记本电脑配备了基于 Xilinx IP 的专用 AI 引擎,名为“Ryzen AI”,可以加速 PyTorch 和 TensorFlow 等机器学习框架的运行。不过目前这个 Ryzen AI 只支持微软 Windows 系统。但是如果有足够的客户需求&…

最新FL Studio 21.2中文版即将发布,2024年会有哪些新功能呢?

好消息!FL Studio 21.2 在 10 月 26 日正式发布啦,它新增了 FL Cloud 在线采样库和 AI 音乐制作功能,还提供音乐分发到 Spotify、Apple Music 等主要音乐平台的服务。此外,还有新的音频分离功能、自定义波形颜色和新的合成器 Kepl…

SpringBoot 整合 Nacos 实现统一配置中心

目录 1. Nacos 功能 1.1 配置中心 2. SpringBoot 整合 Nacos 实现统一配置中心 2.1 Nacos 的部署安装 2.1.1 安装并启动 Nacos 2.1.2 开启Nacos控制台授权登录 2.1.3 将 Nacos 的数据源切换为 MySQL 2.2 实现配置中心 2.2.1 创建配置信息 2.2.2 SringBoot 使用配置中心…

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

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

mac文件夹无法写入 mac只能读取不能写入怎么解

mac用户在使用外接硬盘或U盘时,有时会遇到一个问题:mac文件夹无法写入(只能读取不能写入),这种情况很让人头疼,因为无法对文件进行修改、删除或复制等操作。那么,mac文件夹无法写入的原因是什么…

基于Arduino的智能家居控制系统设计

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、系统总体设计方案本课题研究的内容(一)系统组成(二)硬件模块1.蓝…