请问又没有人能告诉我怎么正确地用ascii码做加减法
c4droid吧
全部回复
仅看楼主
level 12
mark194298 楼主
我想做一个加密信息的小程序,目的是将文本和key都变成相应的数字,再进行相加,得出的数如果不超出范围就直接输出,如果超出范围就减去最大值再进行输出。对于这种方法我的程序如下:
#include<iostream>
#include<ctime>
int main()
{
using namespace std;
char Massege[501], Key[21], Out[501];
int MassegeLen, KeyLen, iMassege=0, iKey, iOut, i;
cout << "输入你想要加密的信息(无空格少于500字节):" << endl;
cin >> Massege;
cout << endl << "你输入的是:" << Massege << "\n\n";
cout << "这封加密信件的关键key(无空格少于20字节)设为:\n";
cin >> Key;
cout << "\n这封加密信的key为:" << Key << ",按回车键开始加密。" << endl;
MassegeLen=strlen(Massege);
KeyLen=strlen(Key);
for (i=0;i<=MassegeLen;i++)
{
int ii=i;
iMassege=Massege[i];
if (ii >KeyLen)
ii=ii-KeyLen;
iKey=Key[ii];
iKey=iKey-96;
iMassege=iMassege-96;
iOut=iMassege+iKey;
if (iOut > 26)
{
iOut=iOut -26;
}
iOut=iOut+96;
cout << iOut << " ";
Out[i]=iOut;
}
cout << endl << Out;
return 0;
}
可问题是每一次加密出来的东西都很怪异,我实在是不明白ascii加减法和普通数字的加减法到底哪里有差。。。百度也找不到这方面的内容。。。
如果有人知道这是怎么回事的话请告诉我,谢谢。
2015年12月24日 04点12分 1
1