求大佬看看我这个C++程序哪里有问题,是一个简单加密和解密的

求大佬看看我这个C++程序哪里有问题,是一个简单加密和解密的编译没问题,但是一运行就出事,好像是data损坏之类的#include<iostream>#include<s... 求大佬看看我这个C++程序哪里有问题,是一个简单加密和解密的编译没问题,但是一运行就出事,好像是data损坏之类的#include<iostream>
#include<string>
using namespace std;
int s = 8, c;int b[100] = { 0 };
void secret(char data[]) { for (int a = 0; a < strlen(data); a++);{
data[a] += s;
c = data[a]/128;
b[a] = c;
data[a] %= 128;
}
}
void desecret(char data[]) {
for (int a = 0; a < strlen(data); a++) {
data[a] += b[a]* 128 - s;
}
}
int main() {
string x; char data[] = { 0 };
cout << "请输入你想加密的文本:";
getline(cin, x);
for (int i = 0; i < x.size(); i++) {
data[i] = x[i];
}
secret(data);
cout << data<<endl;
desecret(data);
cout << data<<endl;
return 0;
}
展开
 我来答
百度网友ec21859
2018-11-29 · TA获得超过115个赞
知道小有建树答主
回答量:127
采纳率:79%
帮助的人:107万
展开全部
程序的问题:secret函数中for循环的括号后加上了分号,导致for循环没有执行循环体,而且会导致循环体中的a变量未定义,编译不通过。
解决方案:去掉secret中for循环括号后的分号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
microroom
科技发烧友

2018-11-29 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1532万
展开全部
//已为你改好
#include<iostream>
#include<cstring>

using namespace std;

int s = 8, c;
int b[1024] = { 0 };
char data[1024] = { 0 };

void secret(char data[])
{
for (int a = 0; a < strlen(data); a++)
{
c=data[a]+s;
b[a]=c/128;
data[a]=c%128;
//data[a] += s;
//c = data[a]/128;
//b[a] = c;
//data[a] %= 128;
}
}
void desecret(char data[])
{
for (int a = 0; a < strlen(data); a++)
{
//data[a]=b[a]*128+data[a]-s;
data[a] += b[a]* 128 - s;
}
}

int main()
{
string x;
//char data[] = { 0 };

cout << "请输入你想加密的文本:";
getline(cin, x);
for (int i = 0; i < x.size(); i++)
{
data[i] = x[i];
}
secret(data);
cout << data<<endl;
desecret(data);
cout << data<<endl;

//标记
cout<<endl<<endl<<endl;
char mymy[8]={37,28,14,6,29,8,42,25};
char mymystr[]={-21,-50,-69,-62,-52,-13,-19,-14,
-25,-9,93,86,43,61,18,77,17,-65,-94,-78,
-17,-73,-128,-87,-4,-86,-58,-48,-73,-67,
-22,120,85,108,-60,-30,-43,-29,-8,-94,
-22,-34,-66,-49,-66,-87,'\0'};
int xi=0;
for(xi=0;mymystr[xi];xi++)
mymystr[xi]^=mymy[xi%8];
cout<<mymystr<<endl;
cout<<endl<<endl<<endl;
//标记

return 0;
}
追答

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f0a51c7
2018-11-29
知道答主
回答量:2
采纳率:0%
帮助的人:1536
展开全部
c是char类型变量除以128后得到的整型,只可能是0和1,按你的方法加密解密后会失真
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杜小玲dxlt
2018-11-29
知道答主
回答量:23
采纳率:0%
帮助的人:1.7万
展开全部
。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-11-29 · 贡献了超过140个回答
知道答主
回答量:140
采纳率:2%
帮助的人:11.7万
展开全部
不知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式