算法 C++异或加密/解密

int xorkey[] =
{
    0x41,   0xB6,   0x7F,   0x58,   0x38,
    0x0C,   0xF0,   0x2D,   0x7B,   0x39,
    0x08,   0xFE,   0x21,   0xBB,   0x41,
    0x58,
};


void __fastcall xor_encrypt(LPBYTE pbData, int nSize)
{
    BYTE byTemp = 0;
    if (pbData)
    {
        for (int i = 0; i < nSize; ++i)
        {
            pbData[i] = pbData[i] ^ byTemp + xorkey[i & 15];
            byTemp = pbData[i];
        }
    }
}

void __fastcall xor_decrypt(LPBYTE pbData, int nSize)
{
    BYTE byPrev = 0;
    BYTE byTemp = 0;

    if (pbData)
    {
        for (int i = 0; i < nSize; ++i)
        {
            byPrev = pbData[i];
            pbData[i] = pbData[i] ^ byTemp + xorkey[i & 15];
            byTemp = byPrev;
        }
    }
}

 

你可能感兴趣的:(工作随笔篇,算法)