读书人

求高手解答:字符串异或加密解密不正

发布时间: 2012-06-02 14:16:14 作者: rapoo

求高手解答:字符串异或加密,解密不正常,
我是想手动输入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); //解密后显示


[解决办法]

探讨

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

读书人网 >C语言

热点推荐