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}

目录
相关文章
|
9月前
|
Go
golang力扣leetcode 42.接雨水
golang力扣leetcode 42.接雨水
61 0
|
9月前
|
Go
golang力扣leetcode 437.路径总和III
golang力扣leetcode 437.路径总和III
89 0
|
9月前
|
Go
golang力扣leetcode 699.掉落的方块
golang力扣leetcode 699.掉落的方块
59 0
|
9月前
|
Go
golang力扣leetcode 406.根据身高重建队列
golang力扣leetcode 406.根据身高重建队列
84 0
|
9月前
|
Go
golang力扣leetcode 668.乘法表中第k小的数
golang力扣leetcode 668.乘法表中第k小的数
46 0
|
9月前
|
Java Go C++
Golang每日一练(leetDay0090) 运算优先级、有效字母异位词
Golang每日一练(leetDay0090) 运算优先级、有效字母异位词
31 0
Golang每日一练(leetDay0090) 运算优先级、有效字母异位词
|
9月前
|
Java Go C++
Golang每日一练(leetDay0116) 路径交叉、回文对
Golang每日一练(leetDay0116) 路径交叉、回文对
72 0
Golang每日一练(leetDay0116) 路径交叉、回文对
|
9月前
|
Go
golang力扣leetcode 2245.转角路径的乘积中最多能有几个尾随零
golang力扣leetcode 2245.转角路径的乘积中最多能有几个尾随零
53 0
|
9月前
|
Go
golang力扣leetcode 39.组合总和
golang力扣leetcode 39.组合总和
49 0
|
9月前
|
Go
golang力扣leetcode 221.最大正方形
golang力扣leetcode 221.最大正方形
61 0