用c++实现字符加密,解密的方式是ascll值乘2加100,加密可以实现解密实现不了,哪个大神来给看一

ma_nong_315 2017-11-11 01:44:53
用c++实现字符加密,解密,加密的方式是ascll值乘2加100,加密可以实现解密实现不了,哪个大神来给看一下
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
int main() {
int* jiami(string mingwen);
char* jiemi(string miwen);
string mingwen;
string miwen;
cout << "请输入数据种类(mingwen/miwen):" << endl;
string zhonglei;
cin >> zhonglei;
if (zhonglei == "mingwen") {
cout << "请输入明文:" << endl;
cin >> mingwen;
int n = mingwen.length();
for (int i = 0; i <= n - 1; i++) {
cout << *(jiami(mingwen) + i) << " " ;
}
}
if (zhonglei == "miwen") {
cout << "请输入密文:" << endl;
cin >> miwen;
int n = (miwen.length() + 1) / 4;
for (int i = 0; i <= n - 1; i++) {
cout << *(jiemi(miwen) + i);
}
}
cout << endl;
system("pause");
}
int* jiami(string mingwen) {
int i;
int n = mingwen.length();
int asc[1000];
int asc2[1000];
int *p;
p = &asc2[0];
for (i = 0; i <= n - 1; i++) {
asc[i] = mingwen[i];
asc2[i] = 2 * asc[i] + 100;
}
return p;
}
char* jiemi(string miwen) {
char *p;
int n = miwen.length();
int asc2[1000];
int asc[1000];
string mingwen;
for (int i = 0; i <= n-1; i=i+4) {
char a = miwen[i];
int x;
x = int(a);
x = 100 * x;
char b = miwen[i + 1];
int y;
y = int(b);
y = 10 * y;
char c = miwen[i + 2];
int z;
z = int(c);
asc2[(i+1) / 4] = x + y + z;
asc[(i+1) / 4] = (asc2[(i+1) / 4] - 100) / 2;
mingwen[(i + 1) / 4] = asc[(i + 1) / 4];
}
p = &mingwen[0];
return p;
}
...全文
190 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
starytx 2017-11-11
  • 打赏
  • 举报
回复
开始多了个return;需要去掉
starytx 2017-11-11
  • 打赏
  • 举报
回复
仅供参考,直接修改了传入的buf值,key为密钥,buf为需要加密的字符串,lBufSize是buf的长度,不包含结束符。
void Encrypt(char *buf, unsigned long lBufSize, const char* key)
{
	return;
	if (NULL == buf || NULL == key || 0 == lBufSize)
	{
		return;
	}
	int nKeyLen = strlen(key);
	unsigned long i = 0;
	unsigned long j = 0;
	for (; i < lBufSize; ++i) 
	{
		buf[i] ^= key[j];
		j = (j + i) % nKeyLen;
	}
}

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧