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语言写了。
标签:加密,AI,long,密钥,随机数,XOR,include From: https://www.cnblogs.com/eleslsel/p/17796797.html