|
10精币
- #define D_WORD_XOR1MUL ((WORD)0x009d)
- #define D_WORD_XOR3BASE ((WORD)0x086d)
- #define D_WORD_XOR3MUL ((WORD)0x087b)
- #define D_XORTABLE_LENGTH 8
- void SocketMng::SetKey()
- {
- for(int i =0; i < D_XORTABLE_LENGTH; i++)
- {
- m_Key[i] = m_Key1[i] ^ m_Key2[i];
- }
- // char msg[128];
- // printf(msg, "%s %s %s %s %s %s %s %s", m_Key[0], m_Key[1], m_Key[2], m_Key[3], m_Key[4], m_Key[5], m_Key[6], m_Key[7]);
- // AfxMessageBox(msg);
- }
- void SocketMng::Encode_Decode(LPBYTE lpTarget, LPBYTE lpSource, WORD nLen)
- {
- BYTE l_BYTE_Xor1 = nLen * D_WORD_XOR1MUL, l_BYTE_Xor3;
- WORD l_WORD_Xor3 = D_WORD_XOR3BASE, nCir;
- for (nCir=0; nCir<nLen; nCir++)
- {
- l_BYTE_Xor3 = HIBYTE(l_WORD_Xor3);
- lpTarget[nCir] = lpSource[nCir] ^ l_BYTE_Xor1 ^ m_Key[nCir % D_XORTABLE_LENGTH] ^ l_BYTE_Xor3;
- l_WORD_Xor3 *= D_WORD_XOR3MUL;
- }
- }
复制代码 这个解码用易语言怎么调用。求大神解答谢谢!
补充内容 (2016-11-16 22:10):
#define D_WORD_XOR1MUL ((WORD)0x009d)
#define D_WORD_XOR3BASE ((WORD)0x086d)
#define D_WORD_XOR3MUL ((WORD)0x087b)
#define D_XORTABLE_LENGTH 8
SEncryption::SEncryption()
{
m_Key[0] = 'l';
m_Key[1] = 'o';
m_Key[2] = 'C';
m_Key[3] = 'H';
m_Key[4] = 'n';
m_Key[5] = 'E';
m_Key[6] = 'S';
m_Key[7] = 's';
}
void SEncryption::Encode_Decode(LPBYTE lpTarget, LPBYTE lpSource, long nLen)
{
BYTE l_BYTE_Xor1 = nLen * D_WORD_XOR1MUL, l_BYTE_Xor3;
WORD l_WORD_Xor3 = D_WORD_XOR3BASE;
long nCir;
for (nCir=0; nCir<nLen; nCir++)
{
l_BYTE_Xor3 = HIBYTE(l_WORD_Xor3);
lpTarget[nCir] = lpSource[nCir] ^ l_BYTE_Xor1 ^ m_Key[nCir % D_XORTABLE_LENGTH] ^ l_BYTE_Xor3;
l_WORD_Xor3 *= D_WORD_XOR3MUL;
}
} |
|