tea-入土为安的第十七天

简介: tea-入土为安的第十七天

新生赛的简单题

注意一点v4 -= 1640531527实际上就等于+0x9E3779B9

#include <stdio.h>
#include <stdint.h>
 
//解密函数
void decrypt (uint32_t* v, uint32_t* k) {
    uint32_t v0=v[0], v1=v[1], sum=0xC6EF3720, i;  
    uint32_t delta=0x9e3779b9;                     
    uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];  
    for (i=0; i<32; i++) {                        //解密时将加密算法的顺序倒过来,还有+=变为-=
        v1 -= (v0*16 + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
        v0 -= (v1*16 + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
        sum -= delta;
    }                                              
    v[0]=v0; v[1]=v1;//解密后再重新赋值
}
 
int main()
{
    uint32_t v[2]={676078132,957400408},k[4]={1702060386,1870148662,1634038898,1634038904};
    // v为要加密的数据是两个32位无符号整数
    // k为加密解密密钥,为4个32位无符号整数,即密钥长度为128位
    printf("加密前原始数据:%u %u\n",v[0],v[1]);
    decrypt(v, k);
    printf("解密后的数据:%u %u\n",v[0],v[1]);
    return 0;
}

moectf{836153a5-8e00-49bd-9c42-caf30620caaf}

目录
相关文章
|
8月前
|
Java Go C++
Golang每日一练(leetDay0116) 路径交叉、回文对
Golang每日一练(leetDay0116) 路径交叉、回文对
68 0
Golang每日一练(leetDay0116) 路径交叉、回文对
poj 1455 Crazy tea party
说一下大概思路,如果是排成一排的n个人,如 1 2 3 4 5 6 7 8 我们要变成 8 7 6 5 4 3 2 1 需要交换 28次,找规律的话就是 n*(n-1)/2,但这道题是一个圈,要让他们顺序变反的话不一定1要在8的位置上去,4 3 2 1 8 7 6 5 这样也是反的,我们只要把n个人分成两部分,然后按拍成一条线的方法来出来两部分就OK了;
30 0
|
设计模式 Java Go
学Go的人有错吗,难道学Java就有钱景?
学Go的人有错吗,难道学Java就有钱景?
|
Go Perl
Golang每日一练(leetDay0066) 有效电话号码、转置文件
Golang每日一练(leetDay0066) 有效电话号码、转置文件
97 0
|
自然语言处理 JavaScript Java
用Darabonba一键生成7种语言的代码|周末学习
最近在看阿里的SDK的时候,突然看到了一个好玩的东西,这玩意叫 Darabonba。是一种 OpenAPI 应用的领域特定语言。可以利用它为任意风格的接口生成多语言的 SDK、代码示例、测试用例、接口编排等。现在阿里云的多语言 SDK 就是用这个生成的。下面是官方的介绍流程图。
464 0
Go每周一刷第四周
Go每周一刷第四周
94 0
Go每周一刷第四周
|
算法 Go 索引
Go 每周一刷1.1
Go 每周一刷1.1
100 0
Go 每周一刷1.1
Go 每周一刷1.0
Go 每周一刷1.0
96 0
Go 每周一刷1.0
Go 每周一刷之二分结尾
Go 每周一刷之二分结尾
102 0
Go 每周一刷之二分结尾
|
JavaScript Java
Darabonba 语言学习--Darafile 详解
本篇文章仅作为本人学习记录,如涉及侵权问题。及时联系作者,予以删除。
322 0

热门文章

最新文章

下一篇
开通oss服务