用c++实现字符加密,解密的方式是ascll值乘2加100,加密可以实现解密实现不了,哪个大神来给看一
用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;
}