当前位置:网站首页>M-Arch(番外12)GD32L233评测-CAU加解密(捉弄下小编)
M-Arch(番外12)GD32L233评测-CAU加解密(捉弄下小编)
2022-06-12 10:33:00 【趣Python】
前言
实验都做完了,一直没有时间把文章梳理出来,时间长了自己都差点忘记了,这一篇测试下CAU加密。
加密的接口都比较简单,但是背后的原理却比较复杂,都是绕来绕去的数学公式,这里就不说了。
以电子密码本模式ECB为例,它是最古老,最简单的模式,将加密的数据分成若干组,每组的大小跟加密密钥长度相同;然后每组都用相同的密钥加密, 比如DES算法, 如果最后一个分组长度不够64位,要补齐64位。
定义:
Enc(X,Y)是加密函数
Dec(X,Y)是解密函数
Key是加密密钥;
Pi ( i = 0,1…n)是明文块,大小为64bit;
Ci ( i = 0,1…n)是密文块,大小为64bit;ECB加密算法可表示为:
Ci = Enc(Key, Pi)ECB解密算法可以表示为:
Pi = Dec(Key,Ci)ECB算法的特点:
每次Key、明文、密文的长度都必须是64位;
数据块重复排序不需要检测;
相同的明文块(使用相同的密钥)产生相同的密文块,容易遭受字典攻击;
一个错误仅仅会对一个密文块产生影响;
示例
比如要加密网址:http://bbs.eeworld.com.cn/thread-1191754-1-1.html
调用的接口很简单,就是 cau_des_ecb,其中的填充是 zero padding。
代码:
static void cau_test(void)
{
#ifdef CAU_TEST
__attribute__((aligned(4)))
uint8_t message[64] = "http://bbs.eeworld.com.cn/thread-1191754-1-1.html";
__attribute__((aligned(4)))
uint8_t key[8] = "12345678";
__attribute__((aligned(4)))
uint8_t encrypt_result[65] = {'\0'};
cau_parameter_struct text;
rcu_periph_clock_enable(RCU_CAU);
cau_deinit();
cau_struct_para_init(&text);
/* encryption in DES ECB mode */
text.alg_dir = CAU_ENCRYPT;
text.key = key;
text.input = message;
text.in_length = 64;
if (SUCCESS == cau_des_ecb(&text, encrypt_result))
{
printf("%s\r\n", encrypt_result);
}
#endif
}在 https://oktools.net/des 这个网址上进行测试,得到:
密文(HEX):49d7997faa52e7f787f8a086c93603ecf17657b2fca877be973940021ef79967eb690d428e998db0888788c9cbe0842c560fcfdf012d0edc
密文(BASE64):SdeZf6pS5/eH+KCGyTYD7PF2V7L8qHe+lzlAAh73mWfraQ1CjpmNsIiHiMnL4IQsVg/P3wEtDtw=
我们的测试结果:

当我们加密的内容很相似时,它们的密文也很相似:
例如:http://bbs.eeworld.com.cn/thread-1193072-1-1.html
密文是:49d7997faa52e7f787f8a086c93603ecf17657b2fca877be973940021ef79967eeccfeb9a8373972888788c9cbe0842c560fcfdf012d0edc
跟前面测试的就很相似了。
测试一个不相同的:
例如:https://mp.weixin.qq.com/s/ZWl1Q8bLrAr-qKYhV4w4BA
密文是:4a0abde163ab83f2750b82fd3e9cdf84cdf44866b991bbb5134c1178ba90c9115eb1f2f30047e67e7b9d69bde70b75d5965d73eaaece4d74
密文(BASE64):Sgq94WOrg/J1C4L9PpzfhM30SGa5kbu1E0wReLqQyRFesfLzAEfmfnudab3nC3XVll1z6q7OTXQ=
跟之前的差别就大了去了。
捉弄下小编
这里有一段机(违)密(规)的中文,给加密了,看看小编知道咋办不?
原文如下(仅包含一些关键字):******大陆******赤日******斗******戍******
密文如下:
HEX: 24052b69b36f22316c2880d0a3a17c8965397ed481c383026b216078e1270308be0bf72147315d6efb47fcddf4673ecd3cfcd49100445b4684ca1878b6b215499c9f412eb22cb8074a23b0bc561744e7b4ee5973057a4385935c6c26aa86d6cbd4de71d01498c09835ef9fb37e61ef0a23c0e2a1e54f796d2ae3b8c634d79cfd867f7c8b0480e7c2e4c73760f64aabba2c8e983c164eee8c4160ada24e364818c5c304cee08db926f11a362d5777e5f25010592485d518bbdd2518fa75eb2fb2c94c5eea744696d2234915521f82c09bd824a857df02788ad7e7dc470868c7b2afeb2e0440ec411ff616abafe33e35ea2a0d9e93087a893470ba3555bab9980d4d0b3487a00482ba17e509dcd45d8054a987c74b0851e869be81a35f57e3912c626f9021ac21989ae37f442c9c4c67327bf039b77c81b673d2e8eca5ae83f4445df0e903b0b4b98ee1ebafdddbfb17ba2fffff5d84852f58b04bb7dc2572ae4d88b453489228c7e1977c6b9c1d2af1bac48876c0acb9a8b1
Base64: JAUrabNvIjFsKIDQo6F8iWU5ftSBw4MCayFgeOEnAwi+C/chRzFdbvtH/N30Zz7NPPzUkQBEW0aEyhh4trIVSZyfQS6yLLgHSiOwvFYXROe07llzBXpDhZNcbCaqhtbL1N5x0BSYwJg175+zfmHvCiPA4qHlT3ltKuO4xjTXnP2Gf3yLBIDnwuTHN2D2Squ6LI6YPBZO7oxBYK2iTjZIGMXDBM7gjbkm8Ro2LVd35fJQEFkkhdUYu90lGPp16y+yyUxe6nRGltIjSRVSH4LAm9gkqFffAniK1+fcRwhox7Kv6y4EQOxBH/YWq6/jPjXqKg2ekwh6iTRwujVVurmYDU0LNIegBIK6F+UJ3NRdgFSph8dLCFHoab6Bo19X45EsYm+QIawhmJrjf0QsnExnMnvwObd8gbZz0ujspa6D9ERd8OkDsLS5juHrr93b+xe6L///XYSFL1iwS7fcJXKuTYi0U0iSKMfhl3xrnB0q8brEiHbArLmosQ==
解密提示:
中文->转unicode码->DES ECB(key:12345678)



边栏推荐
- The difference between static method locking and non static method locking
- PHP can load different new data methods for each refresh
- Set SVG color
- A hundred secrets and a few secrets - Caesar encryption
- Bug easily ignored by recursion
- JS scale down the width and height of the picture
- Get array median
- PHP generate schedule
- 【机器学习】基于鸢尾花(iris)数据集的逻辑回归分类实践
- PHP string encryption and decryption
猜你喜欢

浅谈调和形状上下文特征HSC对3DSC的改进

AcWing 128. 编辑器(对顶栈 实现序列内部指定位置高效修改)

Pseudo static setting of access database in win2008 R2 iis7.5

Properties Chinese garbled code

How to upload the video on the computer to the mobile phone without network

机器学习不是你想用,想用就能用

2022淘宝618超级喵运会玩法攻略 618超级喵运会玩法技巧

基于C#的安全聊天工具设计

conda 安装tensorflow 测试tensorflow

properties中文乱码
随机推荐
Pseudo static setting of access database in win2008 R2 iis7.5
Timers in golang
One test for twoorthree years, recording some thoughts on test exchange experience
session_ start(): Cannot send session cache limiter - headers already sent
2022 Taobao 618 Super Cat Games introduction 618 super cat games playing skills
93. obtain all IP addresses of the Intranet
淘宝618超级喵运会怎么玩?超级喵运会整体活动攻略来了
2022京東618預售定金怎麼退?京東618定金能退嗎?
2022京东618预售定金怎么退?京东618定金能退吗?
Student management system
Find the location of a function in PHP
性能指标的信仰危机
Malicious code analysis practice -- using apatedns and inetsim to simulate network environment
Set SVG color
ID obfuscation
MySQL injection load_ File common path
PHP: seven cattle cloud upload file
JS open common application market
Oculus quest generation opens Bluetooth connection
Global and local existence of array, integer and character variables