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

20231310王宏邦《密码系统设计》第1周

20231310王宏邦《密码系统设计》第1周

学习内容

  • 《Windows C/C++加密解密实战》第 1,2 章:
    • 1、第⼀章概念复习;
    • 2、第⼆章主要在 Linux(Ubuntu,openEuler)上把软件更新到最新版(3.0版本以上)。
bang@LAPTOP-74GS6JSR:~$ openssl version
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

可以看出,我的系统已经安装了 OpenSSL 3.0.2,完全满足了 3.0 以上版本的要求。

AI 对学习内容的总结

  • AI 总结如下:
    • 第1章介绍了密码学的历史背景、基本概念和密码体制的组成。通过玛丽女王的历史案例,强调了密码学在信息安全中的重要性。密码学主要解决机密性、完整性、认证性、不可否认性和可用性五大安全问题。密码体制包括明文、密文、密钥、加密算法和解密算法五个基本要素,可分为对称加密和非对称加密两大类。
    • 第2章重点介绍了 OpenSSL 和 GmSSL 的开发环境搭建,包括在 Windows 和 Linux 系统下的编译、安装和基本使用。OpenSSL 是一个功能强大的开源密码库,支持多种对称加密、非对称加密和信息摘要算法。GmSSL 则是对 OpenSSL 的国密算法扩展,支持 SM2、SM3、SM4 等国密标准。

对 AI 总结的反思与补充

  • AI 总结的问题:
    • 1、对密码学历史的叙述较为简略,未提及密码学发展的三个阶段;
    • 2、对 OpenSSL 和 GmSSL 的具体功能模块和接口介绍不够详细;
    • 3、未提及 OpenSSL 的面向对象设计思想和 BIO/EVP 接口的重要性。
  • 我的补充:
    • 1、密码学发展可分为三个阶段:艺术阶段(1949年前)、理论奠基阶段(1949–1975)和现代密码学阶段(1976至今);
    • 2、OpenSSL 包含三大模块:密码算法库、SSL/TLS 协议库和应用程序,支持 EVP 统一接口和 BIO 抽象 I/O;
    • 3、GmSSL 在 OpenSSL 基础上增加了国密算法支持,符合中国商用密码标准,适用于国内安全需求。

学习思维导图

Mermaid代码

mindmaproot(密码系统设计第一周)第一章:密码学概述密码学历史:::icon(fa fa-history)从古老艺术到现代科学玛丽女王密码案例基本概念五元组: 明文、密文、密钥、加密算法、解密算法密码体制分类: 对称加密、非对称加密密码学目标机密性完整性  认证性不可否认性可用性第二章:开发环境搭建OpenSSL:::icon(fa fa-lock-open)版本验证: 3.0.2 (符合要求)功能模块: 算法库、协议库、应用程序关键接口: BIO、EVPGmSSL:::icon(fa fa-lock)国密算法支持: SM2、SM3、SM4安装方式: 源码编译Crypto++C++密码库特点: 功能全面、面向对象设计实践内容:::icon(fa fa-gears)环境验证openssl versiongmssl version命令行操作哈希计算加解密测试编程实践第一个加解密程序算法接口调用学习成果:::icon(fa fa-check-circle)理解密码学基本概念完成开发环境搭建掌握版本验证方法准备进行编程实践

思维导图

8be4da0b548b4ec5a8035c32d7e1cfc6

基于 AI 的学习

  • :我正在学习"非对称加密算法"这个知识点,请你以苏格拉底的方式对我进行提问,一次一个问题。
  • AI:很好,让我们开始。首先,请你告诉我,为什么我们称它为"非对称"加密?这个"不对称"体现在哪里?
  • :我认为"不对称"指的是加密和解密使用的密钥不是同一把。加密用公钥,解密用私钥,这是两个不同的密钥,所以不对称。
  • AI:很好的起点。那么,既然公钥和私钥不同,我们为何敢将公钥公开散发?这不会导致加密的消息被轻易破解吗?
  • :不会。因为从公钥推导出私钥在计算上是不可行的,或者说极其困难。比如RSA算法基于大数分解难题,ECC基于椭圆曲线离散对数难题。
  • AI:很准确。你提到了"计算上不可行"。那么,如果未来出现了强大的量子计算机,能快速解决这些数学难题,非对称加密还安全吗?
  • :我不确定。你的理解是什么?
  • AI:你的思考方向是对的。这正是当前密码学面临的挑战,被称为"量子威胁"。RSA和ECC等经典算法在量子计算机面前确实不再安全。因此,密码学家正在研究能够抵抗量子计算攻击的新算法,即"后量子密码学"(Post-Quantum Cryptography, PQC)。
  • :明白了。那么,非对称加密虽然安全,但计算速度很慢。在实际应用中,我们是如何解决这个效率问题的呢?
  • AI:一个非常关键的应用。想一想,对称加密速度快但密钥分发难,非对称加密速度慢但密钥分发方便。如何将它们的长处结合起来?
  • :哦!我想起来了。通常是用非对称加密来安全地传输一个临时的"会话密钥",然后用这个对称密钥来加密实际要传输的大量数据。就像SSL/TLS协议做的那样。
  • AI:完美!你已经抓住了混合加密系统的核心思想。那么,除了加密数据,非对称加密的另一个革命性应用是什么?
  • :是数字签名!用私钥签名,用公钥验证。这样可以实现身份认证和不可否认性。
  • AI:正是如此。那么,数字签名是如何保证消息的完整性和签名的不可否认性的?
  • :首先,发送方会对消息生成一个哈希摘要,然后用私钥加密这个摘要,得到的密文就是签名。接收方用公钥解密签名得到摘要,再对比自己计算的哈希值。如果一致,就证明消息未被篡改,且确实来自私钥的持有者。
  • AI:非常精彩的回答。看来你已经理解了核心机制。
  • :针对"非对称加密算法"这个知识点,我理解了吗?
  • AI:根据我们的对话,我认为你已经理解了非对称加密的核心概念,包括其"非对称"的本质、公钥与私钥的关系、其基于的计算困难问题、主要的应用场景(加密和数字签名)、以及如何与对称加密结合解决效率问题。你也意识到了它面临的未来挑战(量子计算)。你的理解是全面且深入的。
  • :我的回答结束了,请对我的回答进行评价总结。
  • AI:总结评价如下:
    • 优势:对非对称加密的基本原理(公/私钥对)、核心安全假设(计算困难问题)和关键应用(加密、数字签名)掌握得非常扎实。
    • 亮点:能够联想到实际应用(如TLS协议中的混合加密系统),这表明不仅理解了理论,还能联系实际。
    • 深度能够主动思考该技术面临的未来挑战(量子计算),体现了批判性思维和前瞻性。

学习实践过程遇到的问题与解决方式

问题一:编译测试程序时链接库失败

在验证OpenSSL环境时,编写了简单的测试程序test.cpp:

#include <iostream>
#include <openssl/evp.h>int main() {OpenSSL_add_all_algorithms();std::cout << "OpenSSL test successful!" << std::endl;return 0;
}

使用g++编译时出现错误:

g++ test.cpp -o test
/tmp/ccQ2Z1oO.o: In function `main':
test.cpp:(.text+0xa): undefined reference to `OpenSSL_add_all_algorithms'
collect2: error: ld returned 1 exit status

解决过程

  • 初步分析:通过AI工具查询,了解到这是典型的链接错误,说明编译器找到了头文件,但链接器找不到对应的库函数实现。
  • AI建议:AI建议添加链接参数-lssl -lcrypto
g++ test.cpp -o test -lssl -lcrypto
  • 尝试解决:执行上述命令后,编译成功,但运行时出现新错误:
./test: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory
  • 进一步分析:AI指出这是动态库路径问题,需要确保系统能够找到OpenSSL的动态库文件。
  • 最终解决方案
find /usr -name "libssl.so.3" 2>/dev/null
find /usr -name "libcrypto.so.3" 2>/dev/null
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.3 /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.3 /usr/lib/
  • 验证结果:重新运行程序,成功输出"OpenSSL test successful!"。

问题二:GmSSL与系统OpenSSL冲突

在安装GmSSL后,执行gmssl version正常,但系统openssl version命令也指向了GmSSL,导致原有的OpenSSL环境被覆盖。

解决过程

  • 检查问题:通过which命令检查
which openssl
which gmssl

发现两个命令指向了同一个位置。

  • AI咨询:向AI工具描述了问题现象,AI解释这是因为安装GmSSL时覆盖了系统的openssl符号链接。
  • 解决方案:AI建议使用update-alternatives管理多版本
# 恢复系统OpenSSL
sudo apt install --reinstall openssl# 设置update-alternatives
sudo update-alternatives --install /usr/bin/openssl openssl /usr/bin/openssl 100
sudo update-alternatives --install /usr/bin/openssl openssl /usr/local/gmssl/bin/openssl 50# 切换版本
sudo update-alternatives --config openssl
  • 验证结果
# 检查系统openssl
openssl version
# OpenSSL 3.0.2 15 Mar 2022# 检查gmssl
gmssl version
# GmSSL 2.5.4 - OpenSSL 1.1.0d 3 Sep 2019

参考资料

  • AI 工具:

    • Kimi
    • DeepSeek
  • 教材:《Windows C/C++加密解密实战》

  • 官方网站:

    • OpenSSL: https://www.openssl.org

    • GmSSL: https://github.com/guanzhi/GmSSL

    • Crypto++: https://www.cryptopp.com

相关文章:

20231310王宏邦《密码系统设计》第1周

20231310王宏邦《密码系统设计》第1周 学习内容《Windows C/C++加密解密实战》第 1,2 章:1、第⼀章概念复习; 2、第⼆章主要在 Linux(Ubuntu,openEuler)上把软件更新到最新版(3.0版本以上)。bang@LAPTOP-74GS6JSR:~$ openssl version OpenSSL 3.0.2 15 Mar 2022 (Library: …...

新学期第一次随笔:慢慢学,总会有进步

一、关于我:爱游戏也想学好知识的普通学生 大家好,我是一名大三学生,平时最大的爱好是打《CS:GO》,空闲时也会玩《我的世界》(MC)。打《CS:GO》时喜欢和队友配合冲锋,既是无畏的冲锋手也是冷静的狙击手,每次赢下对局都特别有成就感;玩MC时总爱研究怎么用指令搭一些自动…...

详细介绍:【C语言】第四课 指针与内存管理

详细介绍:【C语言】第四课 指针与内存管理pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impo…...

知识点错题整理

1:【子串里面包含空串】12+1=13【一个字符串中任意个连续的字符组成的子序列称为该字符串的子串,则字符串 abcab 有(13 )个内容互不相同的子串】...

202311_陇剑杯预赛_tcpdump

流量分析,应急响应Tags:流量分析,应急响应 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202311_陇剑杯预赛_tcpdump.zip题目描述:攻击者通过暴力破解进入了某Wiki 文档,请给出登录的用户名与密码,以:拼接…...

Linux学习记录(六):添加/删除用户

添加/删除用户 sudo useradd -m -d /home/newuser -s /bin/bash newusersudo passwd newuser新建/删除用户su: Super User即系统管理员 useradd: 新建用户 userdel: 删除用户 passwd : 修改密码...

python 链式调用 合并 __setattr__ __getattribute__ in nested object()

使用场景:bpy.types.Scene与bpy.context.scene部分功能重叠。 def Get(obj, attr: str | Sequence[str], root=False):"""injected recursive getattr, could pollute objects on chain in whole session"""IS_STR = isinstance(attr, str)if I…...

分享一个稳定好用的免费云服务——阿贝云体验

最近在搭建个人小项目,一直在寻找稳定的免费云服务器资源,偶然发现了「阿贝云」,用了几天感觉非常不错,特地来分享一下使用体验。 阿贝云提供了免费虚拟主机和免费云服务器,对于像我这样刚开始学习建站或者想做点小实验的用户来说非常友好。注册流程简单,开通也很快,控制…...

年化439%,回撤7%,卡玛比率62.5,附本地运行的完整策略python代码 - 详解

年化439%,回撤7%,卡玛比率62.5,附本地运行的完整策略python代码 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Couri…...

接口测试---PyMysql

PyMysql数据库操作代码安装 : pip install PyMySQL数据库应用场景校验测试数据 :http请求发送后,明确会修改表中的数据,但响应结果中没体现如删除员工(is_delete字段)构造测试数据 :测试数据使用一次就失效,不能重复使用 : 添加员工(手机号码字段)测试数据在展开测试前无法确定…...

My First Blog

被你发现啦~...

设置基础软件仓库时出错

1.安装源报设置基础软件仓库时出错2.点击【网络和主机名】,把网络设置成静态网络,能够访问外网3.点击【安装源】,在网络上这块输入这个网址 https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/base/x86_64/ ,之后点【完成】...

linux c应用性能与内存泄露问题排查工具

GCC内置的内存检测工具在 GCC 中,对 -fsanitize=address(AddressSanitizer, ASan)、-fsanitize=leak(LeakSanitizer, LSan) 和 -fsanitize=memory(MemorySanitizer, MSan) 的支持情况如下:​​-fsanitize=address(AddressSanitizer - ASan)​​​​支持:是​​​​可用版本:…...

深入解析:AI-调查研究-66-机器人 机械臂 软件算法体系:轨迹规划视觉定位力控策略

深入解析:AI-调查研究-66-机器人 机械臂 软件算法体系:轨迹规划视觉定位力控策略pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &qu…...

VS Code快捷键

VS Code 1.通用操作快捷键快捷键 功能Ctrl+Shift+P 打开命令面板Ctrl+Shift+N 新建窗口Ctrl+S 保存Ctrl+P 搜索打开文件2.代码编辑快捷键快捷键 功能Ctrl+Z 撤销Ctrl+Shift+Z 反撤销Ctrl+C 复制Ctrl+X 剪切Ctrl+V 粘贴Ctrl+F 查找Ctrl+H 替换Ctrl+A 全选Shift+Alt+F 格式化代码…...

API安全厂商综合推荐:2025年权威视角下的主流厂商评估与选型指南

API安全厂商综合推荐:2025年权威视角下的主流厂商评估与选型指南基于IDC 2024年度报告,推荐全知科技、奇安信、腾讯云、华为、保旺达,启明星辰、安恒信息,安华金和、美创科技等API安全厂商,适用于金融、政务、运营商等行业客户,支持AI赋能运营提效70%、资产发现纯净度95%…...

基于FPGA的8PSK+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR

1.算法仿真效果 vivado2019.2仿真结果如下(完整代码运行后无水印):设置SNR=10db设置SNR=30db仿真操作步骤可参考程序配套的操作视频。2.算法涉及理论知识概要随着通信技术的不断发展,相位调制技术因其高频谱效率和抗干扰能力而广泛应用于无线通信系统中。其中,8PSK(8相位…...

去去就来

一脚踢开也许从来没有面临过 看着天空就要泪流下 不是为了具体的人 不是为了具体的事 或者说 每个人都是凶手 下雨这天好安静 也不再盼望放晴 扭转时空又如何挽回 时差 禀赋没有破土 在一切都爆发之前 万物缄默 不甘与嫉恨 人性共扭曲 下位者的祈愿 愿你跌入深渊 所谓的思维 究…...

高三试卷

福建省2024-2025学年高三年级下学期模拟(一模&二模&三模)物理试题试卷汇总 https://www.zxxk.com/docpack/3497855.html...

豆包生成C#即梦API HTTP调用实例代码

最近玩即梦AI,文生图,文生视频等等很多玩法都很强大。即梦本身页提供了API。官方文档里有Java, Golang, Python, PHP的SDK,官方也推荐使用SDK,调用SDK会比较省事儿。官方也提供了HTTP请求示例代码,但是也只包括Java, Golang, Python, PHP,没有C#。所以就尝试写个C#调用即…...

解析几何笔记

记号约定:\(\displaystyle {x \brack y}\):向量 \((x, y)\)。1. 直线 一些定义:方向向量:与直线 \(l\) 平行的向量。 倾斜角:直线 \(l\) 与 \(y\) 轴正方向同向的方向向量,与 \(x\) 轴正方向的夹角。形式化的,设直线 \(l\) 的方向向量 \(\bold{v}\) 满足 \(\displaystyl…...

基于SOA海鸥优化算法的PID控制器最优控制参数计算matlab仿真

1.课题概述 基于SOA海鸥优化算法的PID控制器最优控制参数计算matlab仿真,通过SOA优化PID的kp,ki,kd三组参数,对比普通的PID控制器的控制效果。 2.系统仿真结果 3.核心程序与模型版本:MATLAB2022a%使用优化后的参数控制PID控制器 for k=1:10000time(k) = k*ts;%设定…...

使用 CUDA 12.9 编译 PyTorch 2.4.0

最近跑的一个项目需要 torch==2.4.0,但是 GPU(NVIDIA RTX PRO 6000)需要 CUDA 12.9,PyTorch 官方这个配置的预编译包,因此需要手动编译。获取源码: git clone -b v2.4.0 --depth 1 https://github.com/pytorch/pytorch cd pytorch git submodule sync git submodule upda…...

详细介绍:boost::circular_buffer的使用方法简介

详细介绍:boost::circular_buffer的使用方法简介pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace…...

基于禁忌搜索算法的TSP问题最优路径搜索matlab仿真

1.程序功能描述 基于禁忌搜索算法的TSP问题最优路径搜索,旅行商问题(TSP)是一个经典的组合优化问题。其起源可以追溯到 19 世纪初,最初是在物流配送、线路规划等实际场景中被提出。简单来说,给定一组城市和城市之间的距离,旅行商需要从一个城市出发,访问每个城市恰好…...

PDD9.14 笔试 - 浪矢

目录Day1 T1Day1 T4 Day1 T1 简单的模拟: 题目内容大概是给一个字符串a,a的子串拼成字符串b。 例如abcd -> abbccd 给你b字符串,要求给出a字符串。 思路:b字符串中除了第一个字符和最后一个字符串外,其他的都是重复字符,隔一个选一个就好。点击查看代码 import java.u…...

增肌,减脂,变瘦的联系和区别

首先,健身的目的基本都是为了好看的体型,肌肉和脂肪匀称的占比,力量和丝滑的结合。如果是运动员或需要针对性训练肌肉的话,那另说。 其次,这里说一下饮食和训练的关系。 俗话说,三分练七分吃。很多人不理解,为什么吃这么重要,但是我各种营养餐,减脂餐,轻食,没少吃,…...

(eval):1: _python-argcomplete: function definition file not found

(eval):1: _python-argcomplete: function definition file not found 我在使用kali的时候每次想使用table键补全命令就会报错,很烦人就是 去网上搜了一下,终于找到了解决方法argcomplete是一个用于Python的命令行参数自动补全工具。它通过与argparse库结合,为Python应用程序…...

详细介绍:【Spring Boot 报错已解决】Web server failed to start. Port 8080 was already in use.

详细介绍:【Spring Boot 报错已解决】Web server failed to start. Port 8080 was already in use.pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…...

Nordic Neuton.AI 技术优势;

Nordic Neuton.AI 技术的主要优势包括: 极小模型体积 Neuton.AI 能自动生成极小的机器学习模型,通常仅需几 KB(平均小于 5 KB),比传统框架(如 TensorFlow Lite for Microcontrollers)小 10 倍以上。 自动化建模,无需 ML 专业知识 Neuton.AI 平台无需开发者具备神经网络…...

channel Sounding 工作流程

1、必须要建立连接,并且配对绑定模式; 2、通过发送LL_CS_CONFIG_REQ PDU Select “启动器(Initiator) 或 反射器Reflector; 3、LL_CS_CONFIG_RSP PDU Select “与 DEVICE A 相反的角色 ” 4、启动器( Initiator )和反射器都可以发起channel sounding的流程; 如果对这个…...

基于Zhang-Suen算法的图像细化处理FPGA实现,包含testbench和matlab验证程序

1.算法运行效果图预览 (完整程序运行后无水印)将数据导入到matlab中显示图片:可以看到,图3,通过FPGA细化之后,可以获得和MATLAB一样的效果(图2),两者相对于原图(图1)都实现了图像的细化处理。2.算法运行软件版本 vivado2019.2matlab2024b/matlab2022a3.部分核心程序 (…...

channel Sounding RTT和PBR 属性总结

1、蓝牙联盟规定了有72个信道可以使用,每个信道带宽1M; 2、跳频模式和普通ble 跳频方式是不一样的; 3、channel Sounding 必须要是建立连接的; 4、角色分为启动器和反射器; 6、启动器:计算自身到另一个设备的距离 7、反射器:对启动器进行响应的设备; 8、跳频机制和我们普…...

二分查找方法

/*二分查找方法,前提是这个数组是有序的,无序的先排序 1-100; 50 25 判断结构,循环结构(比较),区间为零时找完,则没有找到 / //public static boolean binarySearch(int[]array,int target) //{//定义左右坐标 // int left=0; // int right=array.length-1; /因为…...

复制一个数组的方法

public class DemoArray { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; int[] array1 = new int[array.length]; // for(int i:array){//特殊方法(遍历数据的时候),只需要输出数据的时候使用 // System.out.println(i); //…...

判断目标是否在数组里面

public static boolean fiandTarget(int[] array,int target){ // boolean flag = false; for (int i = 0; i < array.length; i++) { if (array[i] == target){ return true; //flag = true; } } // return flag; return false; }...

选择排序方法

public static void chooseSort(int[] array){for (int i = 0; i < array.length - 1; i++){//记住索引位置int min = array[i];int minIndex = i;//开始内存比较for (int j = i+1; j < array.length; j++) {// 如果发现比标志的小的,就将赋值给标志位if (array[j] <…...

ArcGIS Pro 遇到严重的应用程序错误而无法启动 - 教程

ArcGIS Pro 遇到严重的应用程序错误而无法启动 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monos…...

第一次作业

大家好我日常有三个常做的事:刷视频、玩游戏、偶尔画画。刷视频时,我不只是看娱乐内容,遇到 “Python 基础操作”“PS 简单修图” 这类实用知识,会随手存到收藏夹,每周还会抽 1 小时把零散知识点整理成笔记,现在已经攒了厚厚一本,之前帮同学修图时,还从笔记里找到过调整…...

markdown文件上传到博客园教程

如何将Markdown文件上传到博客园文本内容 图片资源前期准备 vscode软件下载并安装vscode软件安装博客园插件并登录账号在vscode中,通过搜索栏搜索并安装博客园插件,插件名称为:博客园cnblogs客户端,安装后重启vscode软件。登录账号登录成功后可以上传到博客园markdown文件上…...

自我介绍

大家好,我是 谢燚欣 一名来自数据科学与大数据技术专业的学生,很高兴加入博客园以及接下来对我的学习过程进行记录。在学习之外,我还有一颗好奇和勇于尝试的心。当我对滑滑板和滑雪很好奇时,我就会去尝试它们,尽管每一次的摔跤都伴随着剧烈的疼痛,那是也阻挡不了我对它的…...

【展厅多媒体】从技术到体验,AR在展厅中的一体化整合 - 指南

【展厅多媒体】从技术到体验,AR在展厅中的一体化整合 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New"…...

LilCTF 2025

Qt_Creator Solve 通过字符串找到槽函数sub_410100()发现判断点为this == v21,直接动调(附加)到这个地方取值就行(跳过下面部分)根据字符串找到注册信号的位置向上翻找到该类的this指针What I have learned此题不止在demo_code_editor.exe执行过程中存在反调试,在加载库时应该也…...

AES算法原理与举例说明

AES算法原理与举例说明AES( Advanced Encryption Standard,高级加密标准 )是当前全球主流的对称分组密码,用于替代安全性不足的 DES,广泛应用于 HTTPS、文件加密、物联网通信等场景。其核心特点是分组长度固定为 128 位,密钥长度支持 128 位、192 位、256 位(对应算法称…...

ffplay音频重采样 - 教程

ffplay音频重采样 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size:…...

devexpress gridcontrol表格知识

过滤 高亮显示 ,不过滤非匹配行行选择,单行编辑 活动行着色 保存...

深入解析:Qt串口通信学习

深入解析:Qt串口通信学习pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size…...

字符串算法笔记

记号约定:\(|s|\):字符串 \(s\) 的长度。 \(\mathbb{S}\):字符串集。 \(\Sigma\):字符集。一些约定:下标从 \(0\) 开始。1. 哈希 1.1 定义 我们想要快速求出字符串 \(s\) 是否等于 \(t\)。 如果 \(|s| \neq |t|\),那么一定不相等,所以令 \(|s| = |t| = n\)。那么有 \(O(…...

【光照】Unity[经验模型]和[物理模型]

Unity URP(Universal Render Pipeline)中的光照模型BRDF(双向反射分布函数)是PBR(基于物理的渲染)的核心组成部分,用于模拟真实世界的光照交互。【从UnityURP开始探索游戏渲染】专栏-直达一、BRDF发展历史(时间线)‌1971年‌:Bouknight提出首个光反射模型,引入Lambe…...

实用指南:浅聊一下Redisson分布式锁

实用指南:浅聊一下Redisson分布式锁pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important;…...