关于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 ?

^代替*表示指针,是C++/CLI里面的用法,但是关键是我看他的操作都是针对KEY进行的,没有对字符串操作,他怎么就能加密呢,我想不通阿

后面的加密怎么看怎么不对,如果代码没错的话,就是我火候还不够。。。
参考技术A 晕了!有难度!还是另请高手吧! 参考技术B 没见过这种风格的c++…这字符^<,看来咱没见过世面呀 参考技术C C++基础都不熟悉,搞什么解密加密程序?

以上是关于关于C++中字符串加密及解密的主要内容,如果未能解决你的问题,请参考以下文章

.txt 文件中的 Ascii 控制字符问题、XOR 加密、C++

关于MD5加密过的字符串的解密

关于字符串加密与解密

关于如何使用一些已知的加密值查找解密公式的建议[关闭]

记录新项目中遇到的技术及自己忘记的技术点DES加密解密,MD5加密,字符串压缩解压,字符串截取等操作

关于简单的加密和解密算法