CTF CRYPTO 密码学-1

题目名称:enc

题目描述:

压缩包中含两个文件:一个秘钥d.dec,一个密文flag.enc

在这里插入图片描述

在这里插入图片描述

解题过程:

Step1:这题是一个解密他题目,尝试openssl去ras解密

在这里插入图片描述

工具简介

在Kali Linux系统中,openssl 是一个强大的命令行工具,用于处理SSL/TLS协议。openssl pkeyutl 是 openssl 工具集中的一个命令,用于处理私钥文件。

参数解释

openssl pkeyutl:这是执行私钥操作的命令。
-decrypt:这个选项告诉 openssl 执行解密操作。
-inkey d.dec:指定用于解密的私钥文件。这里的 d.dec 是私钥文件的名称。
-in flag.enc:指定包含加密数据的文件。这里的 flag.enc 是加密数据文件的名称。
-out 1:这个参数指定了输出文件的名称。在这里,输出文件被命名为 1。

Step2:解出来后有一串乱码,所以用Mousepad打开修改编码,再次查看

在这里插入图片描述

Mousepad简介

Mousepad 是一个简单且轻量级的文本编辑器,它通常预装在 Kali Linux 和其他基于 Debian 的 Linux 发行版中。Mousepad 旨在提供基本的文本编辑功能,没有过多的复杂性,非常适合快速编辑或查看文本文件

Step3:在Python中计算二进制字符串是否为8的倍数

在这里插入图片描述

分析

计算后得出是7的倍数,所以需要再每7位二进制数前加上0,补足8位后再转换为ASCII码

知识点补充
  • ASCII(美国标准信息交换码)是一种用于表示文本的编码系统,它为每个字符(包括字母、数字、标点符号等)分配了一个唯一的数字代码。ASCII 码表中,每个字符对应一个7位的二进制数(实际上,ASCII 码表只用到了前128个位置,所以每个字符只需要7位,但为了与后来的扩展ASCII兼容,通常使用8位表示,即一个字节)。

  • 二进制是一种数制系统,它只使用两个数字:0和1。在计算机中,所有的数据,包括文本、图像、音频等,最终都会被转换成二进制形式,因为计算机的基本存储和处理单元是二进制位(bit)。

  • ASCII和二进制的关系在于,ASCII 码表中的每个字符都是用二进制数来表示的。例如,ASCII 码表中的大写字母 ‘A’ 对应的二进制数是 01000001。这个二进制数可以被计算机直接读取和处理。

Step4:编写一个脚本,目的是补足8位二进制,每7位前面补足0

在这里插入图片描述

# 补足8位二进制
s = "11001101101100110000111001111111011011001001100111000000010001101101001100100111010010001011011001100011011100101110100100001010001111110011110011101000011111101"
result = [chr(int("0" + s[i:i+7],2))  for i in range(0, len(s), 7)]  
print(result)

在这里插入图片描述

# 将数组转换为字符串
s=['f', 'l', 'a', 'g', '{', '2', '3', '@', '#', '4', 'd', 't', 'E', 'Y', 'F', 'r', 't', 'B', 'G', 's', 'g', '!', '}']
>>> r=''.join(s)
>>> print(r)

相关资源

链接:https://pan.baidu.com/s/1FHvPaeMjMMWfRwf0vlefUA
提取码:200y

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java+SSM养老行动能力评估系统详细设计和实现【附源码】

基于JavaSSM养老行动能力评估系统详细设计和实现【附源码】 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制…

关于git与git-lfs对文件压缩存储方面的研究

先说结论,git使用了Delta增量压缩算法,git-lfs实测没有进行任何压缩,这个结论让我很震惊。 测试过程如下: 测试git仓库自身的压缩 准备一个包含许多杂项文件的文件夹,大概几百M,要保证有一个txt文本文件…

深度好文:MySQL体系结构

MySQL采用的是客户/服务器体系结构,实际是有两个程序,一个是MySQL服务器程序,指的是mysqld程序,运行在存放数据库的机器上,负责在网络上监听并处理来自客户的服务请求,根据这些请求去访问数据库的内容&…

插件和工具汇总

插件和工具汇总 【一】MyBatis Log插件【二】热部署(1)适用于IntelliJ IDEA 2021.X以上版本(2)适用于IntelliJ IDEA 2021.X以下版本 【三】一些快捷键 【一】MyBatis Log插件 能够自动拼接参数生成执行的SQL语句,可以…

073:vue+mapbox 加载here地图(影像瓦片图 v3版)

第073个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载here地图的影像瓦片图。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共77行)相关API参考:专栏目标示例效果

docker:环境安装

系列文章目录 docker:环境安装 文章目录 系列文章目录前言一、Debian安装1.镜像下载2.VM安装3.Debian安装 二、docker安装1.Debian12换源2.docker安装3.docker测试4.docker换源 总结 前言 因为CentOS7确定停服时间为6月30日,虽然对我这种小虾米没啥影响…

ML:2-2-1 Tensorflow

文章目录 1. Tensorflow实现2. 模型训练细节2.1 定义模型f(x)2.2 找到loss and cost funciton2.3 Gradient descent 【吴恩达p60-61】 1. Tensorflow实现 继续看手写数字识别的例题第一步,我们上周学习了。第二步,让Tensorflow去编译模型。最重要的一步…

游戏素材永不缺,免费在线AI工具Scenario功能齐全,简单易用

Scenario是一个在线的AI驱动的工具,主要用于游戏艺术创作。它提供了一套全面的功能,旨在帮助游戏开发者创建与其独特风格和艺术方向相符的独特、高质量的游戏艺术。Scenario的突出特点之一是它的微调能力,允许用户根据独特的风格和艺术方向训…

Vue-23、Vue收集表单数据

1、效果 2、代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>收集表单数据</title><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.js…

Rust-Panic

什么是panic 在Rust中&#xff0c;有一类错误叫作panic。示例如下&#xff1a; 编译&#xff0c;没有错误&#xff0c;执行这段程序&#xff0c;输出为&#xff1a; 这种情况就引发了一个panic。在这段代码中&#xff0c;我们调用了Option::unwrap()方法&#xff0c;正是这个方…

小程序微信支付

微信支付介绍 支付大家应该都不陌生了&#xff0c;在现实生活中经常购买商品并且使用支付功能来付款&#xff0c;在付款的时候可能使用比较多的就是微信支付和支付宝支付了。在苍穹外卖项目中&#xff0c;选择的就是微信支付这种支付方式。 要实现微信支付就需要注册微信支付的…

Midjourney的注册、订阅

一、Midjourney是什么 MJ 就是一个人工智能绘图平台。它于2022年7月12日首次进行公测&#xff0c;2023年3月14日发布的 V5 版本&#xff0c;该版本较之前有了显著提升&#xff0c;生成图片分辨率更高&#xff0c;写实风格人物主体塑形更加准确&#xff0c;细节更多且审美在线。…

光伏逆变器数据采集方案

1 背景 分布式光伏电站主要建设在建筑屋面&#xff0c;厂房屋顶之上&#xff0c;电站后期的运维工作有诸多不便。运用光伏数据采集技术&#xff0c;对配套设备的数据进行远程采集&#xff0c;实现无人值守&#xff0c;可以降低运维成本&#xff0c;有效提高发电效率&#xff0…

Linux学习记录——사십삼 高级IO(4)--- Epoll型服务器(1)

文章目录 1、理解Epoll和对应接口2、简单实现 1、理解Epoll和对应接口 poll依然需要OS去遍历所有fd。一个进程去多个特定的文件中等待&#xff0c;只要有一个就绪&#xff0c;就使用select/poll系统调用&#xff0c;让操作系统把所有文件遍历一遍&#xff0c;哪些就绪就加上哪…

计算机网络-NAT网络地址转换

今天来回顾下之前所学的知识&#xff0c;将它们串联起来进行巩固。一开始了解了IP编址进行IP设置和划分网段&#xff1b;学习了二层以太网交换&#xff0c;了解了二层通信基础&#xff1b;学习了路由基础知识&#xff0c;大致了解到了路由是什么&#xff1f;静态路由和动态路由…

【QT】多窗体应用程序设计

目录 1主要的窗体类及其用途 2 窗体类重要特性的设置 2.1 setAttribute()函数 2.2 setWindowFlags()函数 2.3 setWindowState()函数 2.4 setWindowModality()函数 2.5 setWindowOpacity()函数 3 多窗口应用程序的设计 3.1 主窗口设计 3.2 QFormDoc类的设计 3.3 QFormDoc类的使用…

【Python_PySide6学习笔记(三十一)】基于PySide6实现自定义串口设备连接界面类:可实现串口连接断开、定时发送等功能

基于PySide6实现自定义串口设备连接界面类:可实现串口连接关闭、定时发送等功能 基于PySide6实现自定义串口设备连接界面类:可实现串口连接关闭、定时发送等功能前言一、界面布局二、串口相关功能实现三、完整代码四、调用方法五、实现效果基于PySide6实现自定义串口设备连接…

入门指南:使用STM32微控制器进行ADC数据采集

使用STM32微控制器进行ADC&#xff08;模数转换器&#xff09;数据采集是嵌入式系统开发中常见的任务。本文将介绍如何通过STM32CubeMX和HAL库函数进行ADC数据采集&#xff0c;并提供相应的代码示例。 1. STM32CubeMX配置 首先&#xff0c;使用STM32CubeMX工具配置STM32微控制…

纸黄金实战投资技巧:避免亏损的有效策略

在纸黄金交易的实战中&#xff0c;避免亏损是每位投资者都追求的目标。虽然任何投资都存在一定的风险&#xff0c;但采取一些有效的策略可以帮助投资者最大限度地减少亏损的可能性。以下是一些在纸黄金交易中避免亏损的实战技巧&#xff1a; 一、设定止损点是避免亏损的关键 止…

【Java封装Jar包】将自己的代码封装为一个jar包⭐️以便在别的项目可以直接引用使用

哎&#xff0c;有了&#xff0c;搞一个Jar包给你&#xff01; 目录 前言 一、新建一个Java项目&#xff0c;样例为新建一个Springboot项目&#xff0c;引入了下面两个依赖 二、新建一个测试工具类 三、封装为Jar包 四、项目引入Jar包 五、测试下Jar包 小伙伴们大家好&…