XOR 加密

发布时间 2023-10-29 23:51:37作者: 20231420

1.代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    srand(time(NULL));
    int a,b,c,i,n;
    long long d=0;
    printf("原文:");
    scanf("%d",&a);
    printf("密钥长度:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
                b=rand();
                d=d*10+b%10;
    }
    printf("密钥:%lld\n",d);
    c=a^d;
    printf("密文:%d\n",c);
    c=c^d;
    printf("解密:%d\n",c);
    return 0;
}

2.运行

以我的学号为原文,16位密钥进行加密为例,结果如下图所示。

3.其他

(1)密钥相关

起初我是直接生成一个随机数,然后发现它一般比较小(大概5位),无法有效加密。然后我在思考无果后向AI寻求帮助,理解到可以通过逐位填上数字,得到一个位数较多的数,再自己写代码,成功解决该问题。

AI还提到:

需要注意的是,由于整数类型的限制,位数很多的随机数将超出long long类型的表示范围。如果您需要更大范围的随机数,可以考虑使用第三方库或自定义数据类型来处理。

我见十多位还能生成,就暂时没管。

(2)代码相关

.py是python,暂时不会。.s2不了解,询问AI,结果也不明确。于是就用C语言写了。