📄 newcrypt.cpp
字号:
#include <windows.h>
#include "BlowfishEngine.h"
#include "NewCrypt.h"
CNewCrypt::CNewCrypt(char keybytes[], int keylen)
{
_crypt = new CBlowFishEngine();
_crypt->init(true, keybytes, keylen);
_decrypt = new CBlowFishEngine();
_decrypt->init(false, keybytes, keylen);
}
CNewCrypt::~CNewCrypt(void)
{
}
bool CNewCrypt::checksum(char raw[], int rawlength)
{
long chksum = 0L;
int count = rawlength - 8;
int i = 0;
long ecx;
for(i = 0; i < count; i += 4)
{
ecx = raw[i] & 0xff;
ecx |= raw[i + 1] << 8 & 0xff00;
ecx |= raw[i + 2] << 16 & 0xff0000;
ecx |= raw[i + 3] << 24 & 0xff000000;
chksum ^= ecx;
}
ecx = raw[i] & 0xff;
ecx |= raw[i + 1] << 8 & 0xff00;
ecx |= raw[i + 2] << 16 & 0xff0000;
ecx |= raw[i + 3] << 24 & 0xff000000;
raw[i] = (char)(int)(chksum & 255L);
raw[i + 1] = (char)(int)(chksum >> 8 & 255L);
raw[i + 2] = (char)(int)(chksum >> 16 & 255L);
raw[i + 3] = (char)(int)(chksum >> 24 & 255L);
return ecx == chksum;
}
char* CNewCrypt::decrypt(char raw[], int rawlength)
{
char* result = new char[rawlength];
int count = rawlength / 8;
for(int i = 0; i < count; i++)
_decrypt->processBlock(raw, i * 8, result, i * 8);
return result;
}
char* CNewCrypt::crypt(char raw[], int rawlength)
{
int count = rawlength / 8;
char* result = new char[rawlength];
for(int i = 0; i < count; i++)
_crypt->processBlock(raw, i * 8, result, i * 8);
return result;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -