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

【1】SM4 CBC-MAC 机制

0x01 题目

MSG1:
e55e3e24a3ae7797808fdca05a16ac15eb5fa2e6185c23a814a35ba32b4637c2
MAC1:
0712c867aa6ec7c1bb2b66312367b2c8
-----------------------------------------------------
MSG2:
d8d94f33797e1f41cab9217793b2d0f02b93d46c2ead104dce4bfec453767719
MAC2:
43669127ae268092c056fd8d03b38b5b
-----------------------------------------------------
请输入您的MSG3(64字节,128个Hex,不要添加空格!)(Please input your 64bytes MSG3(64 bytes,128 hexs,don't using space)):

0x02分析

        由于 SM4 CBC-MAC 的计算是需要密钥的,而我们没有密钥也就无法计算任意消息的 MAC 值,这里肯定是需要去特殊构造的。然而一开始并没有什么头绪,直到比我熟悉国密的队友提示说 SM4 CBC-MAC 的初始 iv 是全零

       既然没有密钥,那么这题肯定是要用现有的信息了。另外注意到,两个消息都是32字节,却让我们给一个64字节的消息,题目已经推着我们把两个消息合并到一起了。

       两个消息合并,那么最后的 MAC 值就用 MAC2(MAC1其实也行)好了,于是我们就需要处理一下拼接处的问题。

p1 :e55e3e24a3ae7797808fdca05a16ac15

p2 :eb5fa2e6185c23a814a35ba32b4637c2

p3 :d8d94f33797e1f41cab9217793b2d0f0

p4 :2b93d46c2ead104dce4bfec453767719

明文 :p1 || p2  || MAC1 XOR P3 || p4  -------》对应MAC值:MAC2

得到最终的消息:e55e3e24a3ae7797808fdca05a16ac15eb5fa2e6185c23a814a35ba32b4637c2dfcb8754d310d88071924746b0d562382b93d46c2ead104dce4bfec453767719

0x03 答案

请输入您的MSG3(64字节,128个Hex,不要添加空格!)(Please input your 64bytes MSG3(64 bytes,128 hexs,don't using space)):
e55e3e24a3ae7797808fdca05a16ac15eb5fa2e6185c23a814a35ba32b4637c2dfcb8754d310d88071924746b0d562382b93d46c2ead104dce4bfec453767719
请输入您的MAC3(Please input your MAC3):
43669127ae268092c056fd8d03b38b5b
-----------------------------------------------------
**恭喜!谜题答案验证正确!(Congratulations!Puzzle verified correctly!)**
下面是您的战利品,请妥善记录后再关闭程序,(Your Spoils of war is follow,Please copy that before shutdown this program!)**
-----------------------------------------------------
Flag:
flag{N1lC9AuYQaPZo68G4ZSkw9PBgTMRFkkh}-----------------------------------------------------
Gitea User Name:
TFCTEVTION
-----------------------------------------------------
Gitea Password:
#s@f3ty2024
-----------------------------------------------------
请按回车键结束谜题程序(Please press "Enter" key to end)

相关文章:

【1】SM4 CBC-MAC 机制

0x01 题目 MSG1: e55e3e24a3ae7797808fdca05a16ac15eb5fa2e6185c23a814a35ba32b4637c2 MAC1: 0712c867aa6ec7c1bb2b66312367b2c8 ----------------------------------------------------- MSG2: d8d94f33797e1f41cab9217793b2d0f02b93d46c2ead104dce4bfec453767719 MAC2: 4366…...

响应式编程Reactor API大全(下)

Reactor 是一个基于响应式编程的库&#xff0c;主要用于构建异步和事件驱动的应用程序。Reactor 提供了丰富的 API&#xff0c;包括创建、转换、过滤、组合等操作符&#xff0c;用于处理异步数据流。以下是一些 Reactor 的主要 API 示例&#xff1a; pom依赖 <dependencyMan…...

【STM32】HAL库的STOP低功耗模式UART串口唤醒,解决首字节出错的问题(全网第一解决方案)

【STM32】HAL库的STOP低功耗模式UART串口唤醒&#xff0c;解决首字节出错的问题&#xff08;全网第一解决方案&#xff09; 前文&#xff1a; 【STM32】HAL库的STOP低功耗模式UART串口唤醒&#xff0c;第一个接收字节出错的问题&#xff08;疑难杂症&#xff09; 目前已解决 …...

Python 语法糖

一、基本概念 语法糖&#xff0c;可以理解为&#xff1a;“甜蜜” 的便捷语法。 它是编程语言为程序提供的更简洁、更易读的语法实现的语法结构&#xff0c;它并不影响语言的功能&#xff0c;仅仅是一种更便捷的书写方式。 这就像你制作蛋糕时&#xff0c;使用现代烤箱而不是…...

一个小程序跳转到另一个小程序中如何实现

小程序 保证两个小程序是一样的主体才可以跳转。怎么知道是不是同样的主体呢&#xff1f; 小程序的后台管理-设置-基本设置-基本信息。查看主体信息。 跳转 <button clicktoOtherMini()>跳转到另一个小程序</button> function toOtherMini(){wx.navigateToMini…...

STM32+HAL库驱动ADXL345传感器(SPI协议)

STM32HAL库驱动ADXL345传感器&#xff08;SPI协议&#xff09; ADXL345传感器简介实物STM32CubeMX配置SPI配置片选引脚配置串口配置 特别注意&#xff08;重点部分&#xff09;核心代码效果展示 ADXL345传感器简介 ADXL345 是 ADI 公司推出的基于 iMEMS 技术的 3 轴、数字输出加…...

Redis实现全局唯一Id

一、全局唯一ID 每个店铺都可以发布优惠券&#xff1a; 当用户抢购时&#xff0c;就会生成订单并保存到tb_voucher_order这张表中&#xff0c;而订单表如果使用数据库自增ID就存在一些问题&#xff1a; id的规律性太明显 受单表数据量的限制 场景分析&#xff1a;如果我们的…...

【J-Flash基本使用总结】

【J-Flash基本使用总结】 VX&#xff1a;hao541022348 ■ 烧录文件■ 创建新的工程■ 烧录模式-SWD模式■ J-Flash下载程序到单片机 ■ J-Flash拼接多个hex或bin文件■ J-Flash读单片机的option byte■ J-Flash读单片机Flash数据■ 将读出来的文件用jflash烧录到其他的芯片■ 设…...

宝塔发布网站问题汇总和记录

1、添加网站站点后打不开 解决办法&#xff0c;关闭防跨站攻击2 2、laravel项目部署到linux的时候出现The stream or file "/home/www/storage/logs/laravel.log" could not be opened in append mode 给目录加权限 chmod -R 777 storage 3、Class "Redis"…...

决战排序之巅(二)

决战排序之巅&#xff08;二&#xff09; 排序测试函数 void verify(int* arr, int n) 归并排序递归方案代码可行性测试 非递归方案代码可行性测试 特点分析 计数排序代码实现代码可行性测试 特点分析 归并排序 VS 计数排序&#xff08;Release版本&#xff09;说明1w rand( ) …...

自动化网络监控:每分钟自动检测网站可用性

&#x1f9d9;‍♂️ 诸位好&#xff0c;吾乃诸葛妙计&#xff0c;编程界之翘楚&#xff0c;代码之大师。算法如流水&#xff0c;逻辑如棋局。 &#x1f4dc; 吾之笔记&#xff0c;内含诸般技术之秘诀。吾欲以此笔记&#xff0c;传授编程之道&#xff0c;助汝解技术难题。 &…...

Asp .Net Core 系列:集成 Ocelot+Consul实现网关、服务注册、服务发现

什么是Ocelot? Ocelot是一个开源的ASP.NET Core微服务网关&#xff0c;它提供了API网关所需的所有功能&#xff0c;如路由、认证、限流、监控等。 Ocelot是一个简单、灵活且功能强大的API网关&#xff0c;它可以与现有的服务集成&#xff0c;并帮助您保护、监控和扩展您的微…...

MSSQL行转列、列转行

行转列 SELECT * FROM student PIVOT ( SUM(score) FOR subject IN (语文, 数学, 英语) ) AS PivotedData; 列转行 SELECT * FROM student1 UNPIVOT ( score FOR subject IN ("语文","数学","英语") )AS PivotedData;...

【MySQL】创建和管理表

文章目录 前置 标识符命名规则一、MySQL数据类型二、创建和管理数据库2.1 创建数据库2.2 使用数据库2.3 修改数据库2.4 删除数据库 三、创建表3.1 创建方式一3.2 创建方式二3.3 查看数据表结构 四、修改表4.1 增加一个列4.2 修改一个列4.3 重命名一个列4.4 删除一个列 五、重命…...

缓存和数据库一致性

前言&#xff1a; 项目的难点是如何保证缓存和数据库的一致性。无论我们是先更新数据库&#xff0c;后更新缓存还是先更新数据库&#xff0c;然后删除缓存&#xff0c;在并发场景之下&#xff0c;仍然会存在数据不一致的情况&#xff08;也存在删除失败的情况&#xff0c;删除…...

iOS UI掉帧和卡顿优化解决方案记录

UI卡顿原理 在 VSync 信号到来后&#xff0c;系统图形服务会通过 CADisplayLink 等机制通知 App&#xff0c;App 主线程开始在 CPU 中计算显示内容&#xff0c;比如视图的创建、布局计算、图片解码、文本绘制等。随后 CPU 会将计算好的内容提交到 GPU 去&#xff0c;由 GPU 进行…...

transbigdata 笔记: 轨迹密集化/稀疏化 轨迹平滑

1 密集化 transbigdata.traj_densify(data, col[Vehicleid, Time, Lng, Lat], timegap15) 轨迹致密化&#xff0c;保证至多每隔timegap秒都有一个轨迹点 这边插补使用的是pandas的interpolate&#xff0c;method设置的是index 1.1 举例 transbigdata 笔记&#xff1a; 官方…...

反向代理的本质是什么?

反向代理是一种网络架构模式&#xff0c;通常用于提供静态内容、处理安全、负载均衡和缓存等任务。在这种架构中&#xff0c;客户端发送的请求首先到达反向代理服务器&#xff0c;然后由反向代理服务器将请求转发给后端的实际服务器。反向代理服务器可以处理和修改请求和响应&a…...

Kali Linux保姆级教程|零基础从入门到精通,看完这一篇就够了!(附工具包)

作为一名从事网络安全的技术人员&#xff0c;不懂Kali Linux的话&#xff0c;连脚本小子都算不上。 Kali Linux预装了数百种享誉盛名的渗透工具&#xff0c;使你可以更轻松地测试、破解以及进行与数字取证相关的任何其他工作。 今天给大家分享一套Kali Linux资料合集&#xf…...

UML-用例图

提示&#xff1a;用例图是软件建模的开始&#xff0c;软件建模中的其他图形都将以用例图为依据。用例图列举了系统所需要实现的所有功能&#xff0c;除了用于软件开发的需求分析阶段&#xff0c;也可用于软件的系统测试阶段。 UML-用例图 一、用例图的基础知识1.用例图的构成元…...

石油勘探中的地震波“翻译官”:如何读懂时距曲线图里的地下秘密?

石油勘探中的地震波“翻译官”&#xff1a;如何读懂时距曲线图里的地下秘密&#xff1f; 站在戈壁滩的勘探营地&#xff0c;望着屏幕上那些看似杂乱的波形曲线&#xff0c;刚入行的地质工程师小李皱起了眉头。"这些弯弯曲曲的线条&#xff0c;到底在诉说什么样的地下故事&…...

手把手教你用VSCode快速定位并修改RuoYi框架的页面标题和图标(避坑指南)

高效定制RuoYi前端界面&#xff1a;VSCode全局搜索实战指南 刚接触RuoYi框架的开发者常会遇到这样的困扰&#xff1a;想修改浏览器标签页标题或系统Logo&#xff0c;却不知从何下手。前后端分离的项目结构让配置文件散落在各处&#xff0c;而手动翻找无异于大海捞针。本文将带你…...

Zotero Citation插件开发指南:从环境适配到定制优化的全流程实践

Zotero Citation插件开发指南&#xff1a;从环境适配到定制优化的全流程实践 【免费下载链接】zotero-citation Make Zoteros citation in Word easier and clearer. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-citation 问题发现&#xff1a;学术写作中的引用…...

共享图书借阅系统 Java 源码 + 数据库设计完整方案

以下是一个共享图书借阅系统的Java源码与数据库设计的完整方案&#xff0c;涵盖系统架构、核心功能实现、数据库设计以及安全防护措施等方面&#xff1a;一、系统架构技术栈&#xff1a;后端&#xff1a;Spring Boot 2.x MyBatis-Plus&#xff08;简化数据库操作&#xff09;前…...

避坑指南:libvirt远程连接配置全解析(SSH/TCP实战演示)

避坑指南&#xff1a;libvirt远程连接配置全解析&#xff08;SSH/TCP实战演示&#xff09; 虚拟化技术在现代数据中心和云计算环境中扮演着核心角色&#xff0c;而libvirt作为开源虚拟化管理工具的事实标准&#xff0c;其远程管理能力直接决定了运维效率。本文将深入剖析libvir…...

Meta2d.js完整指南:5步掌握专业级2D可视化引擎开发

Meta2d.js完整指南&#xff1a;5步掌握专业级2D可视化引擎开发 【免费下载链接】meta2d.js The meta2d.js is real-time data exchange and interactive web 2D engine. Developers are able to build Web SCADA, IoT, Digital twins and so on. Meta2d.js是一个实时数据响应和…...

第二章 从ROM到app_main:深入剖析ESP32 FreeRTOS双核启动的代码级实现

1. ESP32双核启动全景图&#xff1a;从硬件复位到RTOS就绪 第一次拿到ESP32开发板时&#xff0c;你可能和我一样好奇&#xff1a;按下复位键后&#xff0c;这个小小的芯片内部究竟发生了什么&#xff1f;为什么我们的app_main函数能自动运行&#xff1f;今天我们就用"显微…...

Java POI读取大文件慢如何优化

用java poi处理大型excel文件时&#xff0c;往往会遇到阅读速度慢的问题&#xff0c;严重影响程序性能。本文将针对“java poi打开大文件的慢优化方法&#xff1f;”这个问题讨论了几个可行的解决方案&#xff0c;以帮助开发者提高程序效率。问题在于java poi 默认情况下&#…...

Minecraft 1.12.2 彩色渐变字体模组:打造个性化聊天与物品命名

1. RGB Chat模组&#xff1a;让你的Minecraft文字绚丽多彩 还在用单调的白色文字聊天吗&#xff1f;RGB Chat模组彻底改变了Minecraft 1.12.2版本的文字显示方式。这个轻量级模组只有几百KB大小&#xff0c;却能给你的游戏体验带来质的飞跃。我第一次在服务器里看到彩色渐变文字…...

ngx_http_init_static_location_trees

1 定义 ngx_http_init_static_location_trees 函数 定义在 ./nginx-1.24.0/src/http/ngx_http.cstatic ngx_int_t ngx_http_init_static_location_trees(ngx_conf_t *cf,ngx_http_core_loc_conf_t *pclcf) {ngx_queue_t *q, *locations;ngx_http_core_loc_conf_…...