关于C++中字符串加密及解密
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C++中字符串加密及解密相关的知识,希望对你有一定的参考价值。
一下是一段加密及解密代码,本人还不太熟悉C++,求高手帮忙分析一下,代码如下:
String^ decrypt(int key, array<unsigned char>^ text)
String^ result = "";
array<unsigned char>^ dbyte = gcnew array<unsigned char>(2);
for(int i=0; i<text->Length; i+=2)
dbyte = BitConverter::GetBytes((short)key);
// XOR decoding to receive Unicode character code
dbyte[0] ^= text[i];
dbyte[1] ^= text[i+1];
result += BitConverter::ToChar(dbyte, 0);
return result->TrimEnd(gcnew array<wchar_t>'\0');
array<unsigned char>^ encrypt(int key, String^ text, int length, bool appendZero)
array<unsigned char>^ result;
if(appendZero)
result = gcnew array<unsigned char>(length+2);
else
result = gcnew array<unsigned char>(length);
array<unsigned char>^ dbyte = gcnew array<unsigned char>(2);
for(int i=0; i<result->Length; i+=2)
dbyte = BitConverter::GetBytes((short)key);
result[i] = dbyte[0];
result[i+1] = dbyte[1];
if(i/2 < text->Length)
dbyte = BitConverter::GetBytes(text[i/2]);
result[i] ^= dbyte[0];
result[i+1] ^= dbyte[1];
/*
if(appendZero)
dbyte = BitConverter::GetBytes((short)key);
result[result->Length-2] = dbyte[0];//^(unsigned char)0;
result[result->Length-1] = dbyte[1];//^(unsigned char)0;
*/
return result;
可能大家没明白我的意思,我只是想了解它加密解密的原理…………
^代替*表示指针,是C++/CLI里面的用法,但是关键是我看他的操作都是针对KEY进行的,没有对字符串操作,他怎么就能加密呢,我想不通阿
后面的加密怎么看怎么不对,如果代码没错的话,就是我火候还不够。。。 参考技术A 晕了!有难度!还是另请高手吧! 参考技术B 没见过这种风格的c++…这字符^<,看来咱没见过世面呀 参考技术C C++基础都不熟悉,搞什么解密加密程序?
以上是关于关于C++中字符串加密及解密的主要内容,如果未能解决你的问题,请参考以下文章
.txt 文件中的 Ascii 控制字符问题、XOR 加密、C++