📄 crypt.cpp
字号:
#include <windows.h>
#include "Crypt.h"
CCrypt::CCrypt(void)
{
_key=NULL;
}
CCrypt::~CCrypt(void)
{
}
void CCrypt::setKey(char key[], int keylength)
{
_key = new char[keylength];
memcpy(_key, key, keylength);
}
INT64 CCrypt::decrypt(char raw[], int rawlength)
{
if(_key == NULL)
return 0L;
int temp = 0;
int j = 0;
for(int i = 0; i < rawlength; i++)
{
int temp2 = raw[i] & 0xff;
raw[i] = (char)(temp2 ^ (_key[j++] & 0xff) ^ temp);
temp = temp2;
if(j > 7)
j = 0;
}
INT64 old = _key[0] & 0xff;
old |= _key[1] << 8 & 0xff00;
old |= _key[2] << 16 & 0xff0000;
old |= _key[3] << 24 & 0xff000000;
old += rawlength;
_key[0] = (char)(int)(old & 255L);
_key[1] = (char)(int)(old >> 8 & 255L);
_key[2] = (char)(int)(old >> 16 & 255L);
_key[3] = (char)(int)(old >> 24 & 255L);
return old;
}
INT64 CCrypt::encrypt(char raw[], int rawlength)
{
if(_key == NULL)
return 0L;
int temp = 0;
int j = 0;
for(int i = 0; i < rawlength; i++)
{
int temp2 = raw[i] & 0xff;
raw[i] = (char)(temp2 ^ (_key[j++] & 0xff) ^ temp);
temp = raw[i];
if(j > 7)
j = 0;
}
INT64 old = _key[0] & 0xff;
old |= _key[1] << 8 & 0xff00;
old |= _key[2] << 16 & 0xff0000;
old |= _key[3] << 24 & 0xff000000;
old += rawlength;
_key[0] = (char)(int)(old & 255L);
_key[1] = (char)(int)(old >> 8 & 255L);
_key[2] = (char)(int)(old >> 16 & 255L);
_key[3] = (char)(int)(old >> 24 & 255L);
return old;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -