#创作计划#我的休闲项目
2025-10-18 11:07:37
发布于:湖南
我在bilibili看到了个视频,那个主播用异或运算做了个加密,我立马到装电脑的房间去了。(我电视机没关,嘻嘻😁😁)
然后我冥思苦想了半个小时,编出了以下代码:
string c;
cout << "输入要加密的文本" << endl;
cin >> c;
long long length = c.size();
string a;
cout << "请输入密钥" << endl;
cin >> a;
int x = time(NULL) % a.size();
for(int i = 0;i < length;i++){
if(c[i] == ' ') continue;
c[i] += a[x];
}
cout << "加密后:" << c << endl;
system("pause");
这个代码的原理如下:
输入部分
用户输入要加密的文本 c 和密钥 a。
密钥偏移初始化
使用 time(NULL) % a.size 生成一个随机起始位置 x,确保每次加密结果不同(依赖运行时间)。
加密过程
遍历文本 c 的每个字符:
如果是空格,跳过。
否则,将当前字符的 Unicode 值加上密钥 a 中位置 x 的字符的 Unicode 值。(不是ascll值)
x 每次循环后会自动递增,并通过 % a.size 循环密钥。
输出结果
加密后的文本直接输出。
本质:
这是一种简单的多表替换加密,类似于维吉尼亚密码的简化版。
密钥循环使用,加密强度不高,适合教学或轻量场景,但不适用于高安全需求。
由于使用 time(NULL),相同输入在不同时间加密结果不同,但可被时间暴力破解。
全部评论 1

2025-10-18 来自 浙江
0哥们无处不在
2025-10-18 来自 浙江
0不是
2025-11-29 来自 湖南
0



















有帮助,赞一个