首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求高手解答:字符串异或加密,解密不正常,解决办法

2012-06-02 
求高手解答:字符串异或加密,解密不正常,我是想手动输入2个字符串,并且在每个字符串前面加上标志a和b然

求高手解答:字符串异或加密,解密不正常,
我是想手动输入2个字符串,并且在每个字符串前面加上标志'a'和'b'
然后进行异或'a'加密,存放到磁盘中。
最后是从此盘中读取到内存中,并在内存中异或'a'进行解密。
问题是:解密后显示的内容不正确。还是乱码。

[code=C/C++][/code]
#define len 20
  char m_a[len]={0};

ofstream fout;
fout.open("aa.dat",ios::out);

this->GetDlgItemText(IDC_EDIT1,m_a,len);
//fout<<'a'<<m_a; //用这个的时候是正常的,读取都正常。其中的'a'是用来做标记的。
//异或加密***********************************
for(int ia=0;ia<len;ia++)
{
m_a[ia]=(m_a[ia])^('a');
}
fout<<(('a')^('a'))<<m_a;

//****************************************
//****************************************
//****************************************
//******************************************
char str[200]={0};  
ifstream fin(filename); //从文件中读取乱码
fin>>str;
//异或解密*******************************
for(int i2=0;i2<200;i2++) //异或,解密乱码
{
str[i2]=str[i2]^('a');

}::AfxMessageBox(str); //解密后显示


[解决办法]

探讨

想问下,解密时采用异或是对的吗?

热点排行