自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(165)
  • 收藏
  • 关注

原创 【密码学】破解维吉尼亚密码(C++代码实现)

问题简述维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。在一个凯撒密码中,字母表中的每一字母都会作一定的偏移,例如偏移量为3时,A就转换为了D、B转换为了E……而维吉尼亚密码则是由一些偏移量不同的凯撒密码组成。为了生成密码,需要使用表格法。这一表格(如图所示)包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。例如,假设明文为:ATTACKATDAWN选择某一关键词并重复而

2022-04-01 15:03:41 10206 7

原创 【密码学】破解RSA密码(Python代码实现)

题目描述已知有人写了如下的代码,并将生成的(n,e,c)以及(n2,e2,c2,(p2+1)*(q2+1))输出。from Crypto.Util.number import *def ef(): p=getPrime(512) q=getPrime(512) flag=open("flag","rb").read() m=bytes_to_long(flag) e=65537 n=p*q c=pow(m,e,n) print(n,...

2021-12-26 18:40:06 11852 7

原创 【Python】numpy库和scipy库的安装与使用

numpy是一个用Python实现的科学计算包,专为进行严格的数值处理而产生,尤其是对大型多维数组和矩阵的支持,并且有一个大型的高级数学函数库来操作这些数组。numpy提供了许多高级的数值编程工具,如实用的线性代数运算、傅立叶变换、随机数产生等。scipy(高级科学计算库)和numpy联系很密切,scioy一般都是操控numpy数组来进行科学计算、统计分析,所以可以说是基于numpy之上了。scipy有很多子模块可以应对不同的应用,例如插值运算,优化算法等等。scipy则是在numpy的..

2021-12-13 19:15:52 25229 1

原创 【Python】学习使用Feapder框架,编写爬虫,爬取院士信息

学习使用Feapder框架,编写爬虫,爬取院士信息。(从http://www.cae.cn/cae/html/main/col48/column_48_1.html爬取中国工程院院士信息)Feapder框架的安装首先我们需要安装一个BeautifulSoup库。python3版本可以直接在cmd下用pip3命令进行安装。命令行输入:pip3 install feapder效果如图:代码示例????...

2021-12-11 14:32:58 4754

原创 【Python】socket编程——使用TCP协议实现智能聊天机器人

编写TCP通信程序,模拟机器人聊天软件原理,服务端提前建立好字典,然后根据接收到的内容自动回复。TCP协议适用于对效率要求相对较低而准确性要求很高的场合,例如文件传输、电子邮件等等,需要建立连接、数据连接、断开连接三个步骤。socket模块常用于TCP编程的方法有:connect(address):连接远程计算机,注意这里的address依旧是一个元组 send(bytes[,flags]):发送数据 recv(bufsize[,flags]):接收

2021-11-10 15:26:54 10101 25

原创 【CTF工具】GitHack下载安装与使用(windows下)

下载方法①从github官网下载https://github.com/lijiejie/GitHack②从codechina镜像站下载https://codechina.csdn.net/mirrors/lijiejie/githack使用方法下载之后解压缩,并通过cmd使用具体操作????①win+R打开cmd终端,进入githack的目录下②使用如下代码进行下载????python GitHack.py http://www.openssl.org(目标网址)/.g

2021-04-24 17:52:56 7286 3

原创 【Python】超简单的华容道小游戏制作+保姆级讲解(附源码)

前言华容道游戏是一个历史悠久的经典游戏,玩法就是将已经打乱的数字重新调整顺序,使其成为正序排列正好昨天一个朋友的python老师留下了这道华容道的题目,今天就来学习一下吧注意,以下内容不包含多类库或者框架等多种小白难以接受的知识,所以很适合刚刚开始学编程的同学话不多说,我们开始吧!①游戏数据的构建假设你想玩一个n阶的数字华容道,那么展示在你面前的将是n*n个数字方块,意味着我们要生成n*n个内存来储存数据在C++中我们用int指针数组储存这n*n个数据,在python中我们也沿袭

2021-03-14 21:59:24 8320 12

原创 如何用代码免费格式转换视频/音频(0基础手把手教学)

不知你是否也为音频文件格式转换问题而头疼过,转换速度慢到不行,甚至转换软件需要充值才能运行今天教大家自己动手免费进行格式转换,保证0基础,保姆级详细教程如下????1.安装免费开源软件ffmpeg链接:https://pan.baidu.com/s/1v8Hzv67x5RocrHqilSw2vg提取码:g00d点击链接输入提取码,安装后解压文件????2.为ffmpeg配置环境变量复制一下bin文件夹的目录路径(目录路径最好不要带汉字),例如D:\ffmpeg-2018

2021-02-26 01:55:39 4932 10

原创 【VBScript恶搞代码】关不掉的窗口

编写vbs脚本没有什么特定要求,只要有系统带了WSH环境就可以千言万语汇成一句话,有手就行!效果图????操作步骤????①先打开记事本win+R打开运行窗口,输入notepad,回车②在记事本上粘贴下列内容WScript.Echo("嘿,谢谢你打开我哦,我等你很久拉!"&TSName)WScript.Echo("你是可爱的小朋吗?")WScript.Echo("哈,我想你拉,这你都不知道吗?")WScript.Echo("怎么才来,说

2021-02-07 16:42:45 8468 8

原创 【VBScript恶搞代码】终极整蛊1.0版本(附源码)

本篇可能就是一次小实战吧,把之前学过的一些知识汇总在一起虽然复杂了一点,但是快乐会翻倍,亲测好评另外,这次整蛊对电脑是没有危害的,敬请放心使用代码赶得有点急,先将就着看吧,后续会补充注释和具体操作步骤转载请注明出处!

2021-02-07 00:34:59 3577 5

原创 【论文阅读】The Deep Learning Compiler: A Comprehensive Survey

深度学习(Deep Learning)编译器将深度学习框架描述的模型在各种硬件平台上生成有效的代码实现,其完成的模型定义到特定代码实现的转换将针对模型规范和硬件体系结构高度优化。具体来说,它们结合了面向深度学习的优化,例如层融合和操作符融合,实现高效的代码生成。此外,现有的编译器还采用了来自通用编译器(例如LLVM)的成熟工具链,对各种硬件体系结构提供了更好的可移植性。简而言之,深度学习编译器通过对深度学习模型和计算图的优化,以及对硬件资源的充分利用,提高了深度学习模型的性能和效率。

2023-07-26 21:34:43 2040

原创 【论文阅读】Feature Inference Attack on Shapley Values

近年来,解释性机器学习逐渐成为一个热门的研究领域。解释性机器学习可以帮助我们理解机器学习模型是如何进行预测的,它可以提高模型的可信度和可解释性。Shapley值是一种解释机器学习模型预测结果的方法,它可以计算每个特征对预测结果的贡献程度,从而帮助我们理解模型的预测过程。Shapley值已经在许多领域得到了广泛的应用,比如金融、医疗、自然语言处理等。

2023-07-26 21:28:28 1739

原创 【开发环境】Windows下搭建TVM编译器

不报错并显示对应的库目录路径意味着前面的步骤都完成了,下面就开始搭建TVM。这个步骤也要等待蛮久的,大概半小时(而且非常占用CPU,电脑风扇起飞),接下来是编译LLVM,简便行事我们可以使用已经手动编译好的库,进入。从github上获取最新版的TVM克隆到本地文件夹tvm中,在Anaconda终端中切换到tvm的文件夹目录下,,下载Windows版本,下载完成后运行.exe,如上所示,没有报错基本就成功了。

2023-07-24 02:18:13 1071

原创 【机器学习】李宏毅-食物图像分类器

卷积层,256个channel,512个filter,每个filter大小3*3,stride=1,padding=1,输入256*16*16,输出512*16*16。卷积层,512个channel,512个filter,每个filter大小3*3,stride=1,padding=1,输入512*16*16,输出512*16*16。卷积层,512个channel,512个filter,每个filter大小3*3,stride=1,padding=1,输入512*8*8,输出512*8*8。

2023-01-04 13:07:21 2222 1

原创 【机器学习】李宏毅-判断年收入

加入正则化的目的就是让模型的参数变小,使模型对数据敏感度下降,所以正则项的加入就是降低模型变化率的过程,变化率降低直观表现为模型更加平滑,使模型更加集中且增大了与真实模型之间的距离,也就是增大了偏移量bias,从而增强了高阶过拟合模型的泛化能力。用逻辑回归的方法生成的模型叫做判别模型,用高斯公式描述后验概率称为生成模型。不同的类别共享协方差矩阵,因为协方差的规模是和特征数量的平方成正比的,如果特征数量很大,协方差的尺寸也大,由于不同的高斯分布有不同的协方差矩阵,这样模型的参数就会很多,就会过拟合。

2023-01-04 13:01:57 1988 2

原创 【机器学习】李宏毅-预测PM2.5

另外比较三个模型在测试集上的表现,模型B和模型C相比模型A同样更加出色,参见附件中的output文件,模型B和模型C在测试集上的输出更加合理,相比模型A的loss更小。首先,比较三个模型的程序运行时间,模型A<模型B<模型C,原因显然是考虑的因素越多使用的资源就越多即运行时间越长,其中模型C的运行时间几乎是模型A和模型B的三倍之多。综上,个人认为模型B的性价比最高,因为考虑的特征更少,运行时间更短,并且在训练集和测试集上的表现都和C几乎一样,相比之下C消耗的资源显然是更多的。

2023-01-04 12:54:30 3210 3

原创 【算法】动态规划(第五章习题解答)

背包问题,物品的价值和重量相等,由于这个背包问题并没有什么特殊已知条件,因此贪心算法并一定可以得到全局最优解,所以最好选用动态规划法来解决。算法设计:核心思路是采用动态规划,不断尝试并缩小问题的规模,同时考虑尽可能多的情况,可以设函数。算法设计:核心思路依旧是采用动态规划,不断尝试并缩小问题的规模,同时考虑尽可能多的情况,设。复杂度分析:由递归方程可知,该算法的时间复杂度相当于斐波那契数列的时间复杂度。函数,因此除了输入和输出外不需要额外的存储空间,因此空间复杂度是。代表存在至少一种找零钱的方法,

2023-01-04 12:33:16 675

原创 【算法】贪心算法(第四章习题解答)

算法设计:首先对所有区间按照右端点升序的顺序进行排序,然后在排序后的结果中统计不相交的区间个数,最后将总区间个数减去不相交的区间个数计算出需删掉的区间个数。综上所述,将最优装载问题的贪心算法推广到两艘船的情形,贪心算法并不能保证产生最优解,该问题可以采用回溯法或动态规划等其他方法解决得到最优解。③物品个数比贪心算法得到的解更多,假设存在的最优解与贪心算法的解去掉二者交集后,最优解中还剩两个或两个以上的物品。②物品个数比贪心算法得到的解相等,由于贪心算法选取的顺序是价值递减的顺序,此情况不存在。

2023-01-04 12:30:30 1600

原创 【算法】分治算法(第三章习题解答)

复杂度分析:该算法使用递归分治的思想,由递推方程可知,每次递归问题的规模减半,因此易得算法的时间复杂度是。复杂度分析:该算法使用递归分治的思想,每次递归问题的规模减半,因此易得算法的时间复杂度是。默认排序算法都在原数组上完成,因此算法只需要常数规模的存储空间,空间复杂度是。因此不妨采用递归分治的思想,并采用类似二分查找的方式寻找中位数,具体操作即将。的中位数,如果不相等,则根据具体情况递归查询规模减半的。算法只需要常数规模的存储空间,因此空间复杂度是。行的排序算法的环节,排序的时间复杂度为。

2023-01-04 12:29:25 685

原创 【算法】排序类算法(第二章习题解答)

中选择一个通过排序算法进行排序,对另一个未排序的集合中的每个元素逐一使用二分查找法在排序好的集合中查找。已经是排序好的单峰数组,比较简单的思路是从头逐个遍历数组找到峰顶,但是这样显然效率不是最高的,为了兼顾效率,可以采用二分查找的方法。进行排序,排序之后每个元素是按照从小到大排列的,说明出现多次的元素是连续排列的,这时再进行计数就可以得到出现次数最多的众数。值得注意的是算法的主要时间复杂度来源于排序,因此选择一个较小的整数集合进行排序可以提高算法的效率。行的排序的时间复杂度为。次,每次的时间复杂度是。

2023-01-04 12:20:34 549

原创 【算法】算法分析技术(第一章习题解答)

对该递推方程构建递归树求解,可得第x个递归层复杂度总和为。,命题1和命题2的等式左右两边化简后均为。

2023-01-04 12:15:41 703

原创 【密码学】RSA的攻与防_4.0

在明文加密前先对明文进行随机填充,让密文随机化,推荐最优非对称加密填充,抵抗选择密文攻击。密钥交换需要数字证书验证身份,抵抗中间人攻击。RSA签名中,对消息的哈希值进行签名,抵抗RSA伪造签名。不定时更新产生新的模N,抵抗共模攻击。

2022-10-26 15:17:28 1854 1

原创 【密码学】RSA的攻与防_3.0

利用RSA的性质:E(PU,M1)*E(PU,M2)=E(PU,[M1M2])PU是公钥,M是待加密内容。即利用CCA攻击,可以用如下方式解密:假定一攻击者截获密文C =M^emod n,此时无法解密M,但可以执行如下计算:(1)计算(2)将X作为选择明文提交,并收到Y =X^dmodn观察下面的等式:M^e*因此,所以可得到消息M1.2 防御措施解决办法是在明文加密前先对明文进行随机填充,让密文随机化,

2022-10-24 16:39:31 1649

原创 【密码学】RSA的攻与防_2.0

考虑一种简化场景,假设A需要发送同一条消息m给B、C和D。三位接收者的公钥分别为(N1,3)、(N2,3)和(N3,3),即公钥指数都为3,公钥模数各不相同。消息不填充,A直接用其他三人的公钥加密并发出三段密文c1,c2,c3:c1=𝑚3modN1, c2=𝑚3modN2,c3=𝑚3modN3这时E偷偷记下三段密文,标记M=m3,如果E可以恢复M,开三次方根自然就得到明文m。这里求解M。

2022-10-24 16:25:56 2116

原创 【密码学】RSA的攻与防_1.0

本文阐述了RSA密码体制存在的一些小问题,并且给出了相应的防御措施。

2022-10-16 16:29:38 3183 2

原创 【Python】使用numpy库实现Tic-Tac-Toe井字棋

教你安装并使用numpy库实现Tic-Tac-Toe井字棋小游戏

2022-09-22 22:41:18 419

原创 【Python】简单两步教你使用progressbar库显示进度条

在用python跑程序时,尤其是循环次数很多的程序,想要看程序运行的进度怎么办,这里有一个很好用很简单上手的库——progressbar库。

2022-09-22 22:21:46 2934

原创 【计算机网络】NAT协议

TCP SYN 报文的源 IP 地址和目标 IP 地址以及源端口和目标端口是什么?除了上面提到的 HTTP GET 消息和 HTTP 200 OK 消息以外,还与其他 Google 服务器有额外的连接,例如,在 NAT_home_side 跟踪文件中,分析时间为 1.572315s 的客户端到服务器 GET 消息,以及时间为 7.573305s 的 GET 消息。可见,源 IP 地址为71.192.34.104,目标IP地址为64.233.169.104,TCP 源端口为4335,目标端口为80。.....

2022-08-12 21:54:26 1776

原创 【计算机网络】TCP协议

gaia.cs.umass.edu发送给客户端计算机以回复 SYN 的 SYN-ACK 报文段的序列号是883061785,SYNACK报文段中的 Acknowledgment number 栏位的值是232129013,Ack 字段用于表示确认字段中的值是有效的, TCP SYN-ACK 报文段的作用是说明服务器成功接收了我们发出的连接请求。Aug 21, 2004 21:44:20.596858000 中国标准时间、Aug 21, 2004 21:44:20.612118000 中国标准时间、...

2022-08-12 21:52:28 4586

原创 【计算机网络】ICMP协议

类型(Type)8,代码(Code)0,ICMP数据包中的其他字段还有校验和(Checksum)、标识符(Identifier)、序列号(Sequence Number)以及数据(Data),校验和、序号和标识符字段各有2个字节。类型(Type)0,代码(Code)0,ICMP数据包中的其他字段还有校验和(Checksum)、标识符(Identifier)、序列号(Sequence Number)以及数据(Data),校验和、序号和标识符字段各有2个字节。(1)你所使用的主机运行的是什么操作系统?...

2022-08-12 21:50:12 3022

原创 【计算机网络】IP协议分析

由于Router2具有10.1.2.0/24的路由,所以数据报可以到达PC1,但是Router1没有10.1.3.0/24的路由,也没默认路由,因此PC2回复的数据报被Router1丢弃。在OSI模型选项卡中可以发现,PC0到PC2的数据报往返可以正常进行,因为Router0有一个朝向Route2的默认路由,且Router2也有到达10.1.1.1的特定路由。两个分片ID一样,一个长度为1500bytes,一个长度为48bytes,因为原ICMP报文总长度超出了以太网帧的负载上限,必须执行分片操作。...

2022-08-12 21:47:48 2042

原创 【计算机网络】交换机工作原理

应用所学知识: ①理解交换机通过逆向自学习算法建立地址转发表的过程 ②理解交换机转发数据帧的规则 ③理解交换机的工作原理

2022-08-12 21:45:32 4645

原创 【计算机网络】PPP和PPPoE协议

应用所学知识,熟悉 PPP 的封装格式,了解 PPPoE 的封装格式,理解 PPP 的两种认证方式。(2)PPPoE中,PPP帧和Ethernet帧的封装关系是什么?(1)ADSL接入采用PPPoE的优点有哪些?PPPoE结构简单,使用方便,且性价较高。①观察PPP和PPPoE的数据封装格式。图中交换机指示灯均呈绿色,初始化完成。...

2022-08-11 18:22:55 2489 2

原创 【计算机网络】CRC校验码的代码实现

应用所学知识,编写代码实现CRC计算和验证功能,并验证CRC编码检验的成功率。

2022-08-11 18:18:55 2443

原创 【Python】作业练习题

①写一个装饰器,可以修改函数,打印输出函数执行时长首先要加载time模块,在timer装饰器中定义inner,因为要支持有参数的函数所以形参是*args和**kwargs这样的可变参数,用start和end记下函数开始和结束的时间,最后打印出函数消耗的时间。除此之外别忘了函数有返回值,在这里我们要先把返回值给到inner,再由装饰器传回函数调用处。import timedef timer(func): def inner(*args,**kwargs): start =

2022-01-04 00:09:39 1127

原创 【Python】cryptography和pycryptodome库使用

(1)使用cryptography模块,编写完整的AES-CBC加解密函数,函数接口为:def encrypt_CBC(key, plaintext, iv)、def decrypt_CBC(key, ciphertext, iv);(2)使用pycryptodome模块,编写程序,实现RSA-OAEP加解密;知识补充????(1)AES是高级加密标准(Advanced Encryption Standard)的缩写,AES是最常见的对称加密算法。对称加密算法也就是加

2021-12-24 21:28:46 7595 9

原创 【Python】RSA算法实现的原理和过程(附源码)

编写求最大公因子的函数;编写求模逆的扩展欧几里得算法函数;编写rabin-miller素性检测算法函数;编写生成大素数的算法函数;编写生成RSA公私钥对的函数;编写RSA加密和解密函数;

2021-12-15 14:09:13 4108

原创 【Python】使用numpy库实现顾客打分的菜品推荐系统

题目↓根据顾客对菜品的打分,实现菜品推荐系统思路分析????推荐系统主要有两种思路,一种是用户-产品协同过滤,也就是要找到与目标用户最相似的人,他喜欢什么,目标用户大概率喜欢什么,另一种思路是产品-产品协同过滤,意思是要根据其他用户的选择推断出产品之间的相关联属性,进而推断出目标用户还可能喜欢什么。两种不同的思路各有利弊,本文选择了前者的用户-产品协同过滤思路,核心是找到与目标用户最相似的人。在整个数据集中构建一个顾客-菜品的二维矩阵,行代表不同的顾客,列代表不同的菜品,第0行对应...

2021-12-14 00:41:35 1140

原创 【Python】利用urllib模块+正则表达式并利用BeautifulSoup模块进行内容解析,爬取院士信息

题目????使用urllib模块或request模块读取网页内容,并利用BeautifulSoup模块进行内容解析,编写爬虫从http://www.cae.cn/cae/html/main/col48/column_48_1.html爬取中国工程院院士信息思路分析????先来了解一下BeautifulSoup的相关知识:1.BeautifulSoup简介BeautifulSoup4和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何

2021-12-10 17:14:50 2678

原创 【Python】利用urllib模块+正则表达式爬取院士信息

题目????使用urllib模块+正则表达式,编写爬虫从http://www.cae.cn/cae/html/main/col48/column_48_1.html爬取中国工程院院士信息思路分析????按照本题的要求,我们一方面要爬取院士的名字,另外再去爬取院士的详细信息,最后将二者汇总写入txt文件里。所以我们首先要获得目标网址的全部源代码,在此基础之上我们再用正则表达式对html代码适当进行过滤得到院士们的姓名。其次我们还要对院士名称标签对应的超链接(网页相对路径)进行记录,随后再去

2021-11-27 18:31:37 2779 2

恶作剧小脚本合集(VBS实现)

收录了几个经典的VBS恶作剧脚本,可以拿去和朋友玩,点开脚本就能运行,开始恶作剧。

2022-08-22

.vbs脚本生成可执行文件.exe转换器

使用说明 下载并解压后无需安装直接使用即可将写好的vbs脚本生成可执行文件.exe

2022-08-22

基于RFC6962标准的默克尔树模块(C++实现)

代码说明 以sm3的散列模块为基础,用C++代码实现了默克尔树,可以手动输入数据,默克尔树叶节点会生成相应的哈希值,非叶节点会生成相应的联结哈希值。 可以运行test.cpp对该模块的构建默克尔树功能进行简单测试。 运行指导 将源码clone到本地运行main函数即可运行。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

SHA256算法C++代码openssl库实现

代码说明 对sha256在openssl库中调用和组装生成可以执行的基于openssl库的sha256模块,可供之后的生日攻击和长度扩展攻击等使用该模块。 可以运行test.cpp对该模块的散列加密功能进行简单测试。 运行指导 将源码clone到本地运行main函数即可运行。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

sm4国密算法C++代码软件优化加速

代码说明 对sm4进行了优化加速,具体方法包括多线程运行、SMID指令集优化、循环展开等。 运行指导 将源码clone到本地运行main函数即可运行。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

sm4国密算法C++代码openssl库实现

代码说明 对sm4在openssl库中调用和组装生成可以执行的基于openssl库的sm4模块,可以作为后续sm4底层模块加速的对照。 运行指导 将源码clone到本地运行main函数即可运行。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

sm4国密算法C++代码底层实现

代码说明 对sm4的结构进行了底层的函数实现,经过调用和组装生成可以执行的sm4模块,由于硬件环境有限且没有加速部件,所以运行起来相对比较慢,可以作为后续openssl库函数调用实现和加速的依据。 运行指导 将源码clone到本地运行main函数即可运行。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

基于Padding Oracle填充规则的服务器攻击算法(Python实现)

代码说明 CBC模式的全称是Cipher Block Chaining模式,即密文分组链接模式,之所以叫这个名字,是因为密文分组像链条一样相互连接在一起。在CBC模式中,首先将明文分组与前一个密文分组进行异或运算,然后再进行加密。 填充提示攻击是一种利用分组密码中填充部分来进行攻击的方法。在分组密码中,当明文长度不为分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组长度。在填充提示攻击中,攻击者会反复发送一段密文,每次发送时都对填充数据进行少许改变。由于接收者(或者说服务器)在无法正确解密时会返回一个错误信息,攻击者通过这一错误消息就可以获得与明文相关的信息。(这一攻击并不仅限于CBC模式,还适用于所有需要进行分组填充的模式)。 填充提示攻击成立有两个重要前提: 1.攻击者能够获得密文,以及附带在密文前面的iv(初始化向量); 2.攻击者能够出发密文的解密过程,且能够知道密文的解密结果。 运行指导 将源码clone到本地运行Padding_Oracle_Attack.py程序即可。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

基于RSA的CET成绩证明系统(Python实现)

代码说明 使用python代码实现了一个基于RSA的CET成绩证明系统,主要架构分为CET_prove_system模块,CET_com官方模块,RSA模块和md5模块。 RSA模块和md5模块包含了RSA和md5的底层函数打包,CET_com官方模块里存储着所有学生的id和CET成绩,CET_prove_system模块负责组装各模块最终实现CET成绩证明系统。 运行指导 将源码clone到本地运行CET_prove_system.py即可开始。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

根据指定hash值寻键爆破脚本(Python实现)

代码说明 在所有可能的姓名+学号的字符串集合下,找到一个MD5散列值为"sdu_cst_20220610"的键。 通过不断构建随机姓+随机名+固定学号前缀+随机学号后缀组成的合法键进行MD5散列求值,与目标散列值比较,相等则求解成功。 在本项目运行中可以发现,MD5散列的不可逆性大大影响了已知value求解key的效率。 运行指导 将源码clone到本地运行FindHashKey.py即可开始。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

sm3国密算法的ρ攻击(C++实现)

代码说明 ρ攻击的目的和生日攻击类似,也是寻求一个基于sm3哈希值的弱碰撞,但是寻找的方式是通过ρ递推表达式来依次尝试。 这里我使用了类似查表攻击似的数据结构,一边存表一边查表(可以使用多线程进一步优化脚本性能),以便可以在较短时间内找到一个前16bit的hash弱碰撞。 如果寻找更长bit的碰撞,寻找时间也会相应变长。 实验结果可见,寻找16bit碰撞中生日攻击所需要的时间少于ρ攻击,但是如果加长碰撞的bit长度,ρ攻击会比生日攻击展现出更好的效率。 运行指导 将源码clone到本地运行main函数即可运行ρ攻击脚本。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

sm3国密算法的生日攻击(C++实现)

代码说明 生日攻击的目的是寻求一个基于sm3哈希值的弱碰撞,原理是一定长度和hash值结果2^32长度,在2^16密文空间中可以以50%以上的概率找到一个hash碰撞。 这里我使用了类似查表攻击似的数据结构,一边存表一边查表(可以使用多线程进一步优化脚本性能),以便可以在较短时间内找到一个前16bit的hash弱碰撞。 如果寻找更长bit的碰撞,寻找时间也会相应变长。 运行指导 将源码clone到本地运行main函数即可运行生日攻击脚本。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

sm3国密算法C++代码软件优化

代码说明 对sm3进行了软件层面的优化加速,主要方法包括循环展开等。 运行指导 将源码clone到本地运行main函数即可运行。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-22

sm3国密算法C++代码openssl库实现

代码说明 对sm3在openssl库中调用和组装生成可以执行的基于openssl库的sm3模块。 运行指导 将源码clone到本地运行main函数即可运行。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-12

sm3国密算法C++代码底层实现

代码说明 对sm3的结构进行了底层的函数实现,经过调用和组装生成可以执行的sm3模块,由于硬件环境有限且没有加速部件,所以运行起来相对比较慢,可以作为后续openssl库函数调用实现和加速的依据。 运行指导 将源码clone到本地运行main函数即可运行。 软件环境:Visual Studio 2019 硬件环境:PC机

2022-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除