返回顶部

收藏

LZW+3DES+Base64编码解码剪贴板文本

更多

高强度加密用于传输文本。

encode3DESstr.cpp

// encode3DESstr.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "encode3DESstr.h"
#include <string>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;

using namespace std; 
//编码表
const char EncodeTable[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
unsigned char Tmp1,Tmp2,Tmp3;
string strEncode;
int LineLength=0;

void set1st(unsigned char c)
{
    Tmp1 = c;
}

void set2nd(unsigned char c)
{
    Tmp2 = c;
}

void set3rd(unsigned char c)
{
    Tmp3 = c;
    strEncode+= EncodeTable[Tmp1 >> 2];
    strEncode+= EncodeTable[((Tmp1 << 4) | (Tmp2 >> 4)) & 0x3F];
    strEncode+= EncodeTable[((Tmp2 << 2) | (Tmp3 >> 6)) & 0x3F];
    strEncode+= EncodeTable[Tmp3 & 0x3F];
    if(LineLength+=4,LineLength==76) 
    {
        strEncode+="\r\n";
        LineLength=0;
    }
}

void (*base64_func[])(unsigned char c)={
    set1st,set2nd,set3rd
};

long n=0;
long counter=0;
char srcBytes[8] = {0};
char szLast8Bits[8] = {0};
char szSubKeys[2][16][48];//储存2个16组48位密钥,第2个用于3DES
char szCiphertextRaw[64]; //储存二进制密文(64个Bits) int 0,1
char szPlaintextRaw[64]; //储存二进制密文(64个Bits) int 0,1
char szCiphertextInBytes[8];//储存8位密文
char szPlaintextInBytes[8];//储存8位明文字符串
char szPlaintext[9];//储存8位明文字符串,最后一位存'\0'

// permuted choice table (PC1)
const static char PC1_Table[56] = {
    57, 49, 41, 33, 25, 17,  9,  1, 58, 50, 42, 34, 26, 18,
    10,  2, 59, 51, 43, 35, 27, 19, 11,  3, 60, 52, 44, 36,
    63, 55, 47, 39, 31, 23, 15,  7, 62, 54, 46, 38, 30, 22,
    14,  6, 61, 53, 45, 37, 29, 21, 13,  5, 28, 20, 12,  4
};
// permuted choice key (PC2)
const static char PC2_Table[48] = {
    14, 17, 11, 24,  1,  5,  3, 28, 15,  6, 21, 10,
    23, 19, 12,  4, 26,  8, 16,  7, 27, 20, 13,  2,
    41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48,
    44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32
};
// number left rotations of pc1 
const static char Shift_Table[16] = {
    1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1
};
// initial permutation (IP)
const static char IP_Table[64] = {
    58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,
    62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,
    57, 49, 41, 33, 25, 17,  9, 1, 59, 51, 43, 35, 27, 19, 11, 3,
    61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7
};
// expansion operation matrix (E)
const static char E_Table[48] = {
    32,  1,  2,  3,  4,  5,  4,  5,  6,  7,  8,  9,
    8,  9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17,
    16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25,
    24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32,  1
};
// The (in)famous S-boxes 
const static char S_Box[8][4][16] = {
    // S1
    14,  4, 13,  1,  2, 15, 11,  8,  3, 10,  6, 12,  5,  9,  0,  7,
    0, 15,  7,  4, 14,  2, 13,  1, 10,  6, 12, 11,  9,  5,  3,  8,
    4,  1, 14,  8, 13,  6,  2, 11, 15, 12,  9,  7,  3, 10,  5,  0,
    15, 12,  8,  2,  4,  9,  1,  7,  5, 11,  3, 14, 10,  0,  6, 13,
    // S2 
    15,  1,  8, 14,  6, 11,  3,  4,  9,  7,  2, 13, 12,  0,  5, 10,
    3, 13,  4,  7, 15,  2,  8, 14, 12,  0,  1, 10,  6,  9, 11,  5,
    0, 14,  7, 11, 10,  4, 13,  1,  5,  8, 12,  6,  9,  3,  2, 15,
    13,  8, 10,  1,  3, 15,  4,  2, 11,  6,  7, 12,  0,  5, 14,  9,
    // S3 
    10,  0,  9, 14,  6,  3, 15,  5,  1, 13, 12,  7, 11,  4,  2,  8,
    13,  7,  0,  9,  3,  4,  6, 10,  2,  8,  5, 14, 12, 11, 15,  1,
    13,  6,  4,  9,  8, 15,  3,  0, 11,  1,  2, 12,  5, 10, 14,  7,
    1, 10, 13,  0,  6,  9,  8,  7,  4, 15, 14,  3, 11,  5,  2, 12,
    // S4 
    7, 13, 14,  3,  0,  6,  9, 10,  1,  2,  8,  5, 11, 12,  4, 15,
    13,  8, 11,  5,  6, 15,  0,  3,  4,  7,  2, 12,  1, 10, 14,  9,
    10,  6,  9,  0, 12, 11,  7, 13, 15,  1,  3, 14,  5,  2,  8,  4,
    3, 15,  0,  6, 10,  1, 13,  8,  9,  4,  5, 11, 12,  7,  2, 14,
    // S5 
    2, 12,  4,  1,  7, 10, 11,  6,  8,  5,  3, 15, 13,  0, 14,  9,
    14, 11,  2, 12,  4,  7, 13,  1,  5,  0, 15, 10,  3,  9,  8,  6,
    4,  2,  1, 11, 10, 13,  7,  8, 15,  9, 12,  5,  6,  3,  0, 14,
    11,  8, 12,  7,  1, 14,  2, 13,  6, 15,  0,  9, 10,  4,  5,  3,
    // S6 
    12,  1, 10, 15,  9,  2,  6,  8,  0, 13,  3,  4, 14,  7,  5, 11,
    10, 15,  4,  2,  7, 12,  9,  5,  6,  1, 13, 14,  0, 11,  3,  8,
    9, 14, 15,  5,  2,  8, 12,  3,  7,  0,  4, 10,  1, 13, 11,  6,
    4,  3,  2, 12,  9,  5, 15, 10, 11, 14,  1,  7,  6,  0,  8, 13,
    // S7 
    4, 11,  2, 14, 15,  0,  8, 13,  3, 12,  9,  7,  5, 10,  6,  1,
    13,  0, 11,  7,  4,  9,  1, 10, 14,  3,  5, 12,  2, 15,  8,  6,
    1,  4, 11, 13, 12,  3,  7, 14, 10, 15,  6,  8,  0,  5,  9,  2,
    6, 11, 13,  8,  1,  4, 10,  7,  9,  5,  0, 15, 14,  2,  3, 12,
    // S8 
    13,  2,  8,  4,  6, 15, 11,  1, 10,  9,  3, 14,  5,  0, 12,  7,
    1, 15, 13,  8, 10,  3,  7,  4, 12,  5,  6, 11,  0, 14,  9,  2,
    7, 11,  4,  1,  9, 12, 14,  2,  0,  6, 10, 13, 15,  3,  5,  8,
    2,  1, 14,  7,  4, 10,  8, 13, 15, 12,  9,  0,  3,  5,  6, 11
};
// 32-bit permutation function P used on the output of the S-boxes 
const static char P_Table[32] = {
    16, 7, 20, 21, 29, 12, 28, 17, 1,  15, 23, 26, 5,  18, 31, 10,
    2,  8, 24, 14, 32, 27, 3,  9,  19, 13, 30, 6,  22, 11, 4,  25
};
// final permutation IP^-1 
const static char IPR_Table[64] = {
    40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31,
    38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29,
    36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27,
    34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41,  9, 49, 17, 57, 25
};

void DES_Bytes2Bits(char *srcBytes, char* dstBits, unsigned int sizeBits)
{
    unsigned int i=0;
    for(i=0; i < sizeBits; i++)
        dstBits[i] = ((srcBytes[i>>3]<<(i&7)) & 128)>>7;
}

void DES_CreateSubKey(char* sz_56key,unsigned int keyN)
{
    char szTmpL[28] = {0};
    char szTmpR[28] = {0};
    char szCi[28] = {0};
    char szDi[28] = {0};
    memcpy(szTmpL,sz_56key,28);
    memcpy(szTmpR,sz_56key + 28,28);

    for(int i=0;i<16;i++)
    {
        //shift to left
        //Left 28 bits
        memcpy(szCi,szTmpL + Shift_Table[i],28 - Shift_Table[i]);
        memcpy(szCi + 28 - Shift_Table[i],szTmpL,Shift_Table[i]);
        //Right 28 bits
        memcpy(szDi,szTmpR + Shift_Table[i],28 - Shift_Table[i]);
        memcpy(szDi + 28 - Shift_Table[i],szTmpR,Shift_Table[i]);

        //permuted choice 48 bits key
        char szTmp56[56] = {0};
        memcpy(szTmp56,szCi,28);
        memcpy(szTmp56 + 28,szDi,28);
        for(int j=0;j<48;j++)
            szSubKeys[keyN][i][j] = szTmp56[PC2_Table[j]-1];
        //Evaluate new szTmpL and szTmpR
        memcpy(szTmpL,szCi,28);
        memcpy(szTmpR,szDi,28);
    }
}

void DES_InitializeKey(char* srcBytes,unsigned int keyN)
{
    //convert 8 char-bytes key to 64 binary-bits
    char sz_64key[64] = {0};
    DES_Bytes2Bits(srcBytes,sz_64key,64);
    //PC 1
    char sz_56key[56] = {0};
    for(int k=0;k<56;k++)
        sz_56key[k] = sz_64key[PC1_Table[k]-1];
    DES_CreateSubKey(sz_56key,keyN);
}

void DES_InitialPermuteData(char* _src,char* _dst)
{
    //IP
    int i=0;
    for(i=0;i<64;i++)
        _dst[i] = _src[IP_Table[i]-1];
}

void DES_ExpansionR(char* _src,char* _dst)
{
    int i=0;
    for(i=0;i<48;i++)
        _dst[i] = _src[E_Table[i]-1];
}

void DES_XOR(char* szParam1,char* szParam2, unsigned int uiParamLength, char* szReturnValueBuffer)
{
    unsigned int i=0;
    for(i=0; i<uiParamLength; i++)
        szReturnValueBuffer[i] = szParam1[i] ^ szParam2[i];
}

void DES_Int2Bits(unsigned int _src, char* dstBits)
{
    unsigned int i=0;
    for(i=0; i < 4; i++)
        dstBits[i] = ((_src<<i) & 8)>>3;
}

void DES_CompressFuncS(char* _src48, char* _dst32)
{
    char bTemp[8][6]={0};
    char dstBits[4]={0};
    int i=0,iX=0,iY=0,j=0;

    for(i=0;i<8;i++)
    {
        memcpy(bTemp[i],_src48+i*6,6);
        iX = (bTemp[i][0])*2 + (bTemp[i][5]);
        iY = 0;
        for(j=1;j<5;j++)
            iY += bTemp[i][j]<<(4-j);
        DES_Int2Bits(S_Box[i][iX][iY], dstBits);
        memcpy(_dst32 + i * 4, dstBits, 4);
    }
}

void DES_PermutationP(char* _src,char* _dst)
{
    int i=0;
    for(i=0;i<32;i++)
        _dst[i] = _src[P_Table[i]-1];
}

void DES_FunctionF(char* sz_Li,char* sz_Ri,unsigned int iKey,unsigned int keyN)
{
    char sz_48R[48] = {0};
    char sz_xor48[48] = {0};
    char sz_P32[32] = {0};
    char sz_Rii[32] = {0};
    char sz_Key[48] = {0};
    char s_Compress32[32] = {0};
    memcpy(sz_Key,szSubKeys[keyN][iKey],48);
    DES_ExpansionR(sz_Ri,sz_48R);
    DES_XOR(sz_48R,sz_Key,48,sz_xor48);

    DES_CompressFuncS(sz_xor48,s_Compress32);
    DES_PermutationP(s_Compress32,sz_P32);
    DES_XOR(sz_P32,sz_Li,32,sz_Rii);
    memcpy(sz_Li,sz_Ri,32);
    memcpy(sz_Ri,sz_Rii,32);
}

void DES_Bits2Bytes(char *dstBytes, char* srcBits, unsigned int sizeBits)
{
    unsigned int i=0;
    memset(dstBytes,0,sizeBits>>3);
    for(i=0; i < sizeBits; i++)
        dstBytes[i>>3] |= (srcBits[i] << (7 - (i & 7)));
}

void DES_EncryptData(char* _srcBytes,unsigned int keyN)
{
    char szSrcBits[64] = {0};
    char sz_IP[64] = {0};
    char sz_Li[32] = {0};
    char sz_Ri[32] = {0};
    char sz_Final64[64] = {0};

    DES_Bytes2Bits(_srcBytes,szSrcBits,64);
    //IP
    DES_InitialPermuteData(szSrcBits,sz_IP);
    memcpy(sz_Li,sz_IP,32);
    memcpy(sz_Ri,sz_IP + 32,32);

    for(int i=0;i<16;i++)
        DES_FunctionF(sz_Li,sz_Ri,i,keyN);
    //so D=LR

    memcpy(sz_Final64,sz_Ri,32);
    memcpy(sz_Final64 + 32,sz_Li,32);

    //~IP
    for(int j=0;j<64;j++)
        szCiphertextRaw[j] = sz_Final64[IPR_Table[j]-1];
    DES_Bits2Bytes(szCiphertextInBytes,szCiphertextRaw,64);
}

void DES_DecryptData(char* _srcBytes,unsigned int keyN)
{
    char szSrcBits[64] = {0};
    char sz_IP[64] = {0};
    char sz_Li[32] = {0};
    char sz_Ri[32] = {0};
    char sz_Final64[64] = {0};
    DES_Bytes2Bits(_srcBytes,szSrcBits,64);
    //IP --- return is sz_IP
    DES_InitialPermuteData(szSrcBits,sz_IP);
    //divide the 64 bits data to two parts
    memcpy(sz_Ri,sz_IP,32); //exchange L to R
    memcpy(sz_Li,sz_IP + 32,32);  //exchange R to L
    //16 rounds F and xor and exchange
    for(int i=0;i<16;i++)
        DES_FunctionF(sz_Ri,sz_Li,15-i,keyN);
    memcpy(sz_Final64,sz_Li,32);
    memcpy(sz_Final64 + 32,sz_Ri,32);
    // ~IP
    for(int j=0;j<64;j++)
        szPlaintextRaw[j] = sz_Final64[IPR_Table[j]-1];
    DES_Bits2Bytes(szPlaintextInBytes,szPlaintextRaw,64);
}
char* DES_GetPlaintext()
{
    memcpy(szPlaintext,szPlaintextInBytes,8);
    szPlaintext[8] = '\0';
    return szPlaintext;
}
void des_deal(int idx,char c)
{
    srcBytes[7]=c;
    memcpy(szLast8Bits,srcBytes,8);
    DES_EncryptData(szLast8Bits, 0);
    DES_DecryptData(szCiphertextInBytes, 1);
    DES_EncryptData(DES_GetPlaintext(), 0);
    for(int i=0;i<8;i++)
        base64_func[(n++)%3](szCiphertextInBytes[i]);
}

void des_store(int idx,char c)
{
    srcBytes[idx]=c;
}

void (*des_func[])(int idx,char c)={
    des_store,des_deal
};

void des_adpter(char c)
{
    int idx=(counter++)%8;
    des_func[counter%8==0](idx,c);
}

BYTE m_MaxBits = 9;
int m_TotalBits = 0;
DWORD m_SavedData = 0;
struct dicElement
{
    DWORD   m_Prefix;       //  keep the prefix of the element
    BYTE    m_Letter;       //  keep the letter of the element

    dicElement()
    {
        m_Prefix = 0;
        m_Letter = 0;
    }
};
void GetBytesFromCode(CPtrArray *m_dictionary,CByteArray *Buffer, DWORD code)
{
    //  Fill an array with bytes using the code for retrieving 
    //  those bytes from the dictionary elements

    //  Since we dont have 0-255 in the dictionary we have to make 
    //  sure, that if we get below 256 we stop (but still add that code)
    //  Every code higher then 255, will have a letter attached to it,
    //  which we use for getting the string back.

    while (code > 255)
    {
        dicElement *tmpEl = (dicElement*)m_dictionary->GetAt(code - 256);
        Buffer->Add(tmpEl->m_Letter);
        code = tmpEl->m_Prefix;
    }
    Buffer->Add((BYTE)code);
}

void CompressData(DWORD toSave)
{
    //  Move the data you want to write few bits to the left
    //  and combine it with the already existing data in the buffer
    m_SavedData |= toSave << (32 - m_MaxBits - m_TotalBits);
    //  Add the new added number of bits to the total bits counter
    m_TotalBits += m_MaxBits;
    //  Check if it's possible to enter the data to the file
    //  (over and equal a byte of data)
    while (m_TotalBits >= 8)
    {
        //  Get the byte we want to write
        DWORD writeData = m_SavedData;
        writeData >>= 24;
        des_adpter(writeData);
        //  remove the byte from the buffer
        m_SavedData <<= 8;
        //  Remove the byte from the counter
        m_TotalBits -= 8;
    }
}

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    int nRetCode = 0;

    // initialize MFC and print and error on failure
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
    {
        // TODO: change error code to suit your needs
        cerr << _T("Fatal Error: MFC initialization failed") << endl;
        nRetCode = 1;
    }
    else
    {
        if (IsClipboardFormatAvailable(CF_TEXT) && OpenClipboard(NULL)) //CF_UNICODETEXT
        {
            HGLOBAL hMem = GetClipboardData(CF_TEXT); 
            if (hMem != NULL) 
            {
                LPTSTR lpStr = (LPTSTR)GlobalLock(hMem); 
                if (lpStr != NULL)
                    GlobalUnlock(hMem);
                DES_InitializeKey("12345678",0);
                DES_InitializeKey("87654321",1);
                DWORD m_MaxCode[32]={0,0x1,0x3,0x7,0xF,0x1F,0x3F,0x7F,0xFF,0x1FF,0x3FF,0x7FF,0xFFF,0x1FFF,0x3FFF,0x7FFF,0xFFFF,0x1FFFF,0x3FFFF,0x7FFFF,0xFFFFF,0x1FFFFF,0x3FFFFF,0x7FFFFF,0xFFFFFF,0x1FFFFFF,0x3FFFFFF,0x7FFFFFF,0xFFFFFFF,0x1FFFFFFF,0x3FFFFFFF,0x7FFFFFFF};
                CPtrArray *m_dictionary= new CPtrArray;
                long result = 0;
                BYTE readByte = 0;
                DWORD resAdd = 256;
                //  Get the total file size
                DWORD prefix=*lpStr++;
                //  Go over the rest of the file and read it
                while (readByte=*lpStr++)
                {
                    //  Check if the prefix and readByte combination exist in the dictionary
                    //  Returns the code of an element from the dictionary
                    //  by searching for the prefix and letter assosiated with
                    //  that element code.
                    //  Returns -1 if no entry was found
                    int total = m_dictionary->GetSize();
                    dicElement *temp = NULL;
                    for (int counter = 0; counter < total; counter++)
                    {
                        temp = (dicElement*)m_dictionary->GetAt(counter);
                        if ((temp->m_Prefix == prefix) && 
                            (temp->m_Letter == readByte))
                            break;
                        temp = NULL;
                    }
                    if (temp != NULL)
                        result =counter + 256;
                    else
                        result =-1;
                    //  If not exist
                    if (result == -1)
                    {
                        //  Add the new combination
                        //  Add a dictionary element.
                        //  Since the dictionary should already have all the values
                        //  between 0-255, we start it from 256.
                        dicElement *temp = new dicElement;
                        temp->m_Prefix = prefix;
                        temp->m_Letter = readByte;
                        m_dictionary->Add(temp);
                        resAdd = m_dictionary->GetSize() + 255;
                        //  Calculate the new bit size needed to encode the file
                        //  Check the value of the parameter against the Maximum number possible
                        //  and then returns the counter
                        //  This can also be acheived by right shifting the value until we get 0
                        //  and counting the number of times we doing it.
                        for (BYTE counter = 0; counter < 32; counter++)
                            if (resAdd <= m_MaxCode[counter])
                                break;
                        m_MaxBits = counter;
                        //  Since the minimal number of bits we are using is 9 (256 is the begining of the dictionary), 
                        //  then the minimal number of bits is check to return a 9 in case a lower value will be
                        //  reached in the application
                        if (m_MaxBits < 9)
                            m_MaxBits = 9;  
                        //  Send the prefix for compression in to the destination file
                        CompressData(prefix);
                        //  Set the prefix as the readByte
                        prefix = readByte;
                        //  Initiate the result
                        result = -1;
                        delete temp;
                    }
                    else
                    {
                        //  Set the prefix as the result
                        prefix = result;
                        readByte = 0;
                    }
                }
                //  Insert to the file the maximum number of bit (for signaling the end of the
                //  compression\decompression)
                CompressData(prefix);
                CompressData(m_MaxCode[m_MaxBits]);
                //  Flash the rest of the file with 0
                CompressData(0);
                int iParts=0,iResidue=0,i=0;
                char szLast8Bits[8] = {0};
                if(counter<8)
                {
                    char _temp8bytes[8] = {0};
                    memcpy(_temp8bytes,srcBytes,counter);
                    DES_EncryptData(_temp8bytes, 0);
                    DES_DecryptData(szCiphertextInBytes, 1);
                    DES_EncryptData(DES_GetPlaintext(), 0);
                    for(int i=0;i<8;i++)
                        base64_func[(n++)%3](szCiphertextInBytes[i]);
                }
                else if(counter==8)
                {
                    DES_EncryptData(srcBytes, 0);
                    DES_DecryptData(szCiphertextInBytes, 1);
                    DES_EncryptData(DES_GetPlaintext(), 0);
                    for(int i=0;i<8;i++)
                        base64_func[(n++)%3](szCiphertextInBytes[i]);
                }
                else
                {
                    iResidue = counter % 8;
                    if(iResidue>0)
                        for(int i=0;i<iResidue;i++)
                            base64_func[(n++)%3](srcBytes[i]);
                }
                switch(n % 3)
                {
                case 1:
                    strEncode+= EncodeTable[(Tmp1 & 0xFC) >> 2];
                    strEncode+= EncodeTable[((Tmp1 & 0x03) << 4)];
                    strEncode+= "==";
                    break;
                case 2:
                    strEncode+= EncodeTable[(Tmp1 & 0xFC) >> 2];
                    strEncode+= EncodeTable[((Tmp1 & 0x03) << 4) | ((Tmp2 & 0xF0) >> 4)];
                    strEncode+= EncodeTable[((Tmp2 & 0x0F) << 2)];
                    strEncode+= "=";
                    break;
                }
                //  Remove the existing dictionary
                delete m_dictionary;
                char *pMem;
                hMem = GlobalAlloc( GHND | GMEM_DDESHARE, strEncode.length()+1);
                if(hMem)
                {
                    pMem = (char*)GlobalLock(hMem);
                    strcpy(pMem,strEncode.c_str());
                    GlobalUnlock(hMem);
                    EmptyClipboard();
                    SetClipboardData(CF_TEXT,hMem);
                }
                CloseClipboard();
            }
        }
    }

    return nRetCode;
}

decode3DESstr.cpp

// decode3DESstr.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "decode3DESstr.h"
#include <string.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;

using namespace std;
void decompress_adpter(BYTE b);
DWORD m_MaxCode[32]={0,0x1,0x3,0x7,0xF,0x1F,0x3F,0x7F,0xFF,0x1FF,0x3FF,0x7FF,0xFFF,0x1FFF,0x3FFF,0x7FFF,0xFFFF,0x1FFFF,0x3FFFF,0x7FFFF,0xFFFFF,0x1FFFFF,0x3FFFFF,0x7FFFFF,0xFFFFFF,0x1FFFFFF,0x3FFFFFF,0x7FFFFFF,0xFFFFFFF,0x1FFFFFFF,0x3FFFFFFF,0x7FFFFFFF};
BYTE m_MaxBits= 9;
int m_TotalBits= 0;
DWORD m_SavedData= 0;
DWORD data = 0;
CByteArray decodeString;
BYTE writeData = 0, character = 0;
long counter = 0;
//  Get the first prefix information
DWORD prefix;
int idx=0;
CPtrArray *m_dictionary;
string strDecode;
struct dicElement
{
    DWORD   m_Prefix;       //  keep the prefix of the element
    BYTE    m_Letter;       //  keep the letter of the element

    dicElement()
    {
        m_Prefix = 0;
        m_Letter = 0;
    }
};

void GetBytesFromCode(CPtrArray *m_dictionary,CByteArray *Buffer, DWORD code)
{
    //  Fill an array with bytes using the code for retrieving 
    //  those bytes from the dictionary elements

    //  Since we dont have 0-255 in the dictionary we have to make 
    //  sure, that if we get below 256 we stop (but still add that code)
    //  Every code higher then 255, will have a letter attached to it,
    //  which we use for getting the string back.
    dicElement *tmpEl = NULL;

    while (code > 255)
    {
        tmpEl = (dicElement*)m_dictionary->GetAt(code - 256);
        Buffer->Add(tmpEl->m_Letter);
        code = tmpEl->m_Prefix;
    }
    Buffer->Add((BYTE)code);
}

void getbyte(BYTE b)
{   
    //  Add the byte to the read buffer
    m_SavedData |= (DWORD) b << (24 - m_TotalBits);
    //  Add byte to the bit counter
    m_TotalBits += 8;
}

void initial(BYTE b)
{
    idx=1;
    //  calculate the return information
    prefix = m_SavedData >> (32 - m_MaxBits);
    //  Remove the returned information from the buffer
    m_SavedData <<= m_MaxBits;
    //  Remove the return information bit size from the bit counter
    m_TotalBits -= m_MaxBits;
    //  Save the prefix as the last used character (since we're writing it in the
    //  destination file)
    character = (BYTE)prefix;
    //  Write the prefix in the destination file (the first byte inside
    //  a LZW copressed file is always the first byte of the original file)
    strDecode+=prefix;
    decompress_adpter(b);
}

void rest2(BYTE b)
{
    //  calculate the return information
    data = m_SavedData >> (32 - m_MaxBits);
    //  Remove the returned information from the buffer
    m_SavedData <<= m_MaxBits;
    //  Remove the return information bit size from the bit counter
    m_TotalBits -= m_MaxBits;

    if (data != m_MaxCode[m_MaxBits])
    {
        //  Check if the code exist in the dictionary
        //  if not
        //  Check if the code exist in the dictionary
        //  Returns TRUE if so, and FALSE if not.

        //  If the code is lower then 256, then the element is a normal
        //  ASCII character, and as such is considered to be in the
        //  dictionay.
        if (data >= 256 && data - 256 >= (unsigned)m_dictionary->GetSize())
        {
            //  Get the last used character into the decod buffer
            decodeString.Add((BYTE)character);
            //  Decode the existing prefix into a known string of data
            GetBytesFromCode(m_dictionary,&decodeString, prefix);
        }
        else
        {
            //  Decode the data into the decode buffer
            GetBytesFromCode(m_dictionary,&decodeString, data);
            //  Get the last letter inside the data, as the last used letter
            character = decodeString.GetAt(decodeString.GetSize() - 1);
        }

        //  Go over the decode buffer, from the end to the start,
        //  and write the information into the destination file
        counter = decodeString.GetSize();
        while (counter > 0)
        {
            writeData = (BYTE)decodeString.GetAt(--counter);
            strDecode+=writeData;
        }

        //  Clear the decode buffer
        decodeString.RemoveAll();
        //  Add the new combination into the dictionary
        //  Add a dictionary element.
        //  Since the dictionary should already have all the values
        //  between 0-255, we start it from 256.
        dicElement *tmp = new dicElement;

        tmp->m_Prefix = prefix;
        tmp->m_Letter = (BYTE)character;

        m_dictionary->Add(tmp);

        //  Calculate the new buffer size to read now
        DWORD value=m_dictionary->GetSize() + 257;
        //  Check the value of the parameter against the Maximum number possible
        //  and then returns the counter

        //  This can also be acheived by right shifting the value until we get 0
        //  and counting the number of times we doing it.

        for (BYTE counter = 0; counter < 32; counter++)
            if (value <= m_MaxCode[counter])
                break;
        m_MaxBits = counter;

        //  Since the minimal number of bits we are using is 9 (256 is the begining of the dictionary), 
        //  then the minimal number of bits is check to return a 9 in case a lower value will be
        //  reached in the application
        if (m_MaxBits < 9)
            m_MaxBits = 9;              
        //  Set the new prefix to use
        prefix = data;
        delete tmp;
    }
}

void (*rest_func[])(BYTE b)={
    getbyte,rest2
};

void rest(BYTE b)
{
    rest_func[m_TotalBits > 24](b);
    decompress_adpter(b);
}

void (*getrestbytes[])(BYTE b)={
    initial,rest
};

void getotherbytes(BYTE b)
{
    getrestbytes[idx](b);
}

void (*decompress_func[])(BYTE b)={
    getbyte,getotherbytes
};

void decompress_adpter(BYTE b)
{
    decompress_func[m_TotalBits > 24](b);
}

long count=0;
char srcBytes[8]={0};
char szLast8Bits[8] = {0};
char szSubKeys[2][16][48];//储存2个16组48位密钥,第2个用于3DES
char szCiphertextRaw[64]; //储存二进制密文(64个Bits) int 0,1
char szPlaintextRaw[64]; //储存二进制密文(64个Bits) int 0,1
char szCiphertextInBytes[8];//储存8位密文
char szPlaintextInBytes[8];//储存8位明文字符串
char szPlaintext[9];//储存8位明文字符串,最后一位存'\0'

// permuted choice table (PC1)
const static char PC1_Table[56] = {
    57, 49, 41, 33, 25, 17,  9,  1, 58, 50, 42, 34, 26, 18,
        10,  2, 59, 51, 43, 35, 27, 19, 11,  3, 60, 52, 44, 36,
        63, 55, 47, 39, 31, 23, 15,  7, 62, 54, 46, 38, 30, 22,
        14,  6, 61, 53, 45, 37, 29, 21, 13,  5, 28, 20, 12,  4
};
// permuted choice key (PC2)
const static char PC2_Table[48] = {
    14, 17, 11, 24,  1,  5,  3, 28, 15,  6, 21, 10,
        23, 19, 12,  4, 26,  8, 16,  7, 27, 20, 13,  2,
        41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48,
        44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32
};
// number left rotations of pc1 
const static char Shift_Table[16] = {
    1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1
};
// initial permutation (IP)
const static char IP_Table[64] = {
    58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,
        62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,
        57, 49, 41, 33, 25, 17,  9, 1, 59, 51, 43, 35, 27, 19, 11, 3,
        61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7
};
// expansion operation matrix (E)
const static char E_Table[48] = {
    32,  1,  2,  3,  4,  5,  4,  5,  6,  7,  8,  9,
        8,  9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17,
        16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25,
        24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32,  1
};
// The (in)famous S-boxes 
const static char S_Box[8][4][16] = {
    // S1
    14,  4, 13,  1,  2, 15, 11,  8,  3, 10,  6, 12,  5,  9,  0,  7,
        0, 15,  7,  4, 14,  2, 13,  1, 10,  6, 12, 11,  9,  5,  3,  8,
        4,  1, 14,  8, 13,  6,  2, 11, 15, 12,  9,  7,  3, 10,  5,  0,
        15, 12,  8,  2,  4,  9,  1,  7,  5, 11,  3, 14, 10,  0,  6, 13,
        // S2 
        15,  1,  8, 14,  6, 11,  3,  4,  9,  7,  2, 13, 12,  0,  5, 10,
        3, 13,  4,  7, 15,  2,  8, 14, 12,  0,  1, 10,  6,  9, 11,  5,
        0, 14,  7, 11, 10,  4, 13,  1,  5,  8, 12,  6,  9,  3,  2, 15,
        13,  8, 10,  1,  3, 15,  4,  2, 11,  6,  7, 12,  0,  5, 14,  9,
        // S3 
        10,  0,  9, 14,  6,  3, 15,  5,  1, 13, 12,  7, 11,  4,  2,  8,
        13,  7,  0,  9,  3,  4,  6, 10,  2,  8,  5, 14, 12, 11, 15,  1,
        13,  6,  4,  9,  8, 15,  3,  0, 11,  1,  2, 12,  5, 10, 14,  7,
        1, 10, 13,  0,  6,  9,  8,  7,  4, 15, 14,  3, 11,  5,  2, 12,
        // S4 
        7, 13, 14,  3,  0,  6,  9, 10,  1,  2,  8,  5, 11, 12,  4, 15,
        13,  8, 11,  5,  6, 15,  0,  3,  4,  7,  2, 12,  1, 10, 14,  9,
        10,  6,  9,  0, 12, 11,  7, 13, 15,  1,  3, 14,  5,  2,  8,  4,
        3, 15,  0,  6, 10,  1, 13,  8,  9,  4,  5, 11, 12,  7,  2, 14,
        // S5 
        2, 12,  4,  1,  7, 10, 11,  6,  8,  5,  3, 15, 13,  0, 14,  9,
        14, 11,  2, 12,  4,  7, 13,  1,  5,  0, 15, 10,  3,  9,  8,  6,
        4,  2,  1, 11, 10, 13,  7,  8, 15,  9, 12,  5,  6,  3,  0, 14,
        11,  8, 12,  7,  1, 14,  2, 13,  6, 15,  0,  9, 10,  4,  5,  3,
        // S6 
        12,  1, 10, 15,  9,  2,  6,  8,  0, 13,  3,  4, 14,  7,  5, 11,
        10, 15,  4,  2,  7, 12,  9,  5,  6,  1, 13, 14,  0, 11,  3,  8,
        9, 14, 15,  5,  2,  8, 12,  3,  7,  0,  4, 10,  1, 13, 11,  6,
        4,  3,  2, 12,  9,  5, 15, 10, 11, 14,  1,  7,  6,  0,  8, 13,
        // S7 
        4, 11,  2, 14, 15,  0,  8, 13,  3, 12,  9,  7,  5, 10,  6,  1,
        13,  0, 11,  7,  4,  9,  1, 10, 14,  3,  5, 12,  2, 15,  8,  6,
        1,  4, 11, 13, 12,  3,  7, 14, 10, 15,  6,  8,  0,  5,  9,  2,
        6, 11, 13,  8,  1,  4, 10,  7,  9,  5,  0, 15, 14,  2,  3, 12,
        // S8 
        13,  2,  8,  4,  6, 15, 11,  1, 10,  9,  3, 14,  5,  0, 12,  7,
        1, 15, 13,  8, 10,  3,  7,  4, 12,  5,  6, 11,  0, 14,  9,  2,
        7, 11,  4,  1,  9, 12, 14,  2,  0,  6, 10, 13, 15,  3,  5,  8,
        2,  1, 14,  7,  4, 10,  8, 13, 15, 12,  9,  0,  3,  5,  6, 11
};
// 32-bit permutation function P used on the output of the S-boxes 
const static char P_Table[32] = {
    16, 7, 20, 21, 29, 12, 28, 17, 1,  15, 23, 26, 5,  18, 31, 10,
        2,  8, 24, 14, 32, 27, 3,  9,  19, 13, 30, 6,  22, 11, 4,  25
};
// final permutation IP^-1 
const static char IPR_Table[64] = {
    40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31,
        38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29,
        36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27,
        34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41,  9, 49, 17, 57, 25
};

void DES_Bytes2Bits(char *srcBytes, char* dstBits, unsigned int sizeBits)
{
    unsigned int i=0;
    for(i=0; i < sizeBits; i++)
        dstBits[i] = ((srcBytes[i>>3]<<(i&7)) & 128)>>7;
}

void DES_CreateSubKey(char* sz_56key,unsigned int keyN)
{
    char szTmpL[28] = {0};
    char szTmpR[28] = {0};
    char szCi[28] = {0};
    char szDi[28] = {0};
    memcpy(szTmpL,sz_56key,28);
    memcpy(szTmpR,sz_56key + 28,28);

    for(int i=0;i<16;i++)
    {
        //shift to left
        //Left 28 bits
        memcpy(szCi,szTmpL + Shift_Table[i],28 - Shift_Table[i]);
        memcpy(szCi + 28 - Shift_Table[i],szTmpL,Shift_Table[i]);
        //Right 28 bits
        memcpy(szDi,szTmpR + Shift_Table[i],28 - Shift_Table[i]);
        memcpy(szDi + 28 - Shift_Table[i],szTmpR,Shift_Table[i]);

        //permuted choice 48 bits key
        char szTmp56[56] = {0};
        memcpy(szTmp56,szCi,28);
        memcpy(szTmp56 + 28,szDi,28);
        for(int j=0;j<48;j++)
            szSubKeys[keyN][i][j] = szTmp56[PC2_Table[j]-1];
        //Evaluate new szTmpL and szTmpR
        memcpy(szTmpL,szCi,28);
        memcpy(szTmpR,szDi,28);
    }
}

void DES_InitializeKey(char* srcBytes,unsigned int keyN)
{
    //convert 8 char-bytes key to 64 binary-bits
    char sz_64key[64] = {0};
    DES_Bytes2Bits(srcBytes,sz_64key,64);
    //PC 1
    char sz_56key[56] = {0};
    for(int k=0;k<56;k++)
        sz_56key[k] = sz_64key[PC1_Table[k]-1];
    DES_CreateSubKey(sz_56key,keyN);
}

void DES_InitialPermuteData(char* _src,char* _dst)
{
    //IP
    int i=0;
    for(i=0;i<64;i++)
        _dst[i] = _src[IP_Table[i]-1];
}

void DES_ExpansionR(char* _src,char* _dst)
{
    int i=0;
    for(i=0;i<48;i++)
        _dst[i] = _src[E_Table[i]-1];
}

void DES_XOR(char* szParam1,char* szParam2, unsigned int uiParamLength, char* szReturnValueBuffer)
{
    unsigned int i=0;
    for(i=0; i<uiParamLength; i++)
        szReturnValueBuffer[i] = szParam1[i] ^ szParam2[i];
}

void DES_Int2Bits(unsigned int _src, char* dstBits)
{
    unsigned int i=0;
    for(i=0; i < 4; i++)
        dstBits[i] = ((_src<<i) & 8)>>3;
}

void DES_CompressFuncS(char* _src48, char* _dst32)
{
    char bTemp[8][6]={0};
    char dstBits[4]={0};
    int i=0,iX=0,iY=0,j=0;

    for(i=0;i<8;i++)
    {
        memcpy(bTemp[i],_src48+i*6,6);
        iX = (bTemp[i][0])*2 + (bTemp[i][5]);
        iY = 0;
        for(j=1;j<5;j++)
            iY += bTemp[i][j]<<(4-j);
        DES_Int2Bits(S_Box[i][iX][iY], dstBits);
        memcpy(_dst32 + i * 4, dstBits, 4);
    }
}

void DES_PermutationP(char* _src,char* _dst)
{
    int i=0;
    for(i=0;i<32;i++)
        _dst[i] = _src[P_Table[i]-1];
}

void DES_FunctionF(char* sz_Li,char* sz_Ri,unsigned int iKey,unsigned int keyN)
{
    char sz_48R[48] = {0};
    char sz_xor48[48] = {0};
    char sz_P32[32] = {0};
    char sz_Rii[32] = {0};
    char sz_Key[48] = {0};
    char s_Compress32[32] = {0};
    memcpy(sz_Key,szSubKeys[keyN][iKey],48);
    DES_ExpansionR(sz_Ri,sz_48R);
    DES_XOR(sz_48R,sz_Key,48,sz_xor48);

    DES_CompressFuncS(sz_xor48,s_Compress32);
    DES_PermutationP(s_Compress32,sz_P32);
    DES_XOR(sz_P32,sz_Li,32,sz_Rii);
    memcpy(sz_Li,sz_Ri,32);
    memcpy(sz_Ri,sz_Rii,32);
}

void DES_Bits2Bytes(char *dstBytes, char* srcBits, unsigned int sizeBits)
{
    unsigned int i=0;
    memset(dstBytes,0,sizeBits>>3);
    for(i=0; i < sizeBits; i++)
        dstBytes[i>>3] |= (srcBits[i] << (7 - (i & 7)));
}

void DES_EncryptData(char* _srcBytes,unsigned int keyN)
{
    char szSrcBits[64] = {0};
    char sz_IP[64] = {0};
    char sz_Li[32] = {0};
    char sz_Ri[32] = {0};
    char sz_Final64[64] = {0};

    DES_Bytes2Bits(_srcBytes,szSrcBits,64);
    //IP
    DES_InitialPermuteData(szSrcBits,sz_IP);
    memcpy(sz_Li,sz_IP,32);
    memcpy(sz_Ri,sz_IP + 32,32);

    for(int i=0;i<16;i++)
        DES_FunctionF(sz_Li,sz_Ri,i,keyN);
    //so D=LR

    memcpy(sz_Final64,sz_Ri,32);
    memcpy(sz_Final64 + 32,sz_Li,32);

    //~IP
    for(int j=0;j<64;j++)
        szCiphertextRaw[j] = sz_Final64[IPR_Table[j]-1];
    DES_Bits2Bytes(szCiphertextInBytes,szCiphertextRaw,64);
}

void DES_DecryptData(char* _srcBytes,unsigned int keyN)
{
    char szSrcBits[64] = {0};
    char sz_IP[64] = {0};
    char sz_Li[32] = {0};
    char sz_Ri[32] = {0};
    char sz_Final64[64] = {0};
    DES_Bytes2Bits(_srcBytes,szSrcBits,64);
    //IP --- return is sz_IP
    DES_InitialPermuteData(szSrcBits,sz_IP);
    //divide the 64 bits data to two parts
    memcpy(sz_Ri,sz_IP,32); //exchange L to R
    memcpy(sz_Li,sz_IP + 32,32);  //exchange R to L
    //16 rounds F and xor and exchange
    for(int i=0;i<16;i++)
        DES_FunctionF(sz_Ri,sz_Li,15-i,keyN);
    memcpy(sz_Final64,sz_Li,32);
    memcpy(sz_Final64 + 32,sz_Ri,32);
    // ~IP
    for(int j=0;j<64;j++)
        szPlaintextRaw[j] = sz_Final64[IPR_Table[j]-1];
    DES_Bits2Bytes(szPlaintextInBytes,szPlaintextRaw,64);
}
char* DES_GetPlaintext()
{
    memcpy(szPlaintext,szPlaintextInBytes,8);
    szPlaintext[8] = '\0';
    return szPlaintext;
}

void de_des_deal(int idx,char c)
{
    srcBytes[7]=c;
    memcpy(szLast8Bits,srcBytes,8);
    DES_DecryptData(szLast8Bits, 0);
    DES_EncryptData(DES_GetPlaintext(), 1);
    DES_DecryptData(szCiphertextInBytes, 0);
    for(int ii=0;ii<8;ii++)
        decompress_adpter(szPlaintextInBytes[ii]);
}

void de_des_store(int idx,char c)
{
    srcBytes[idx]=c;
}

void (*de_des_func[])(int idx,char c)={
    de_des_store,de_des_deal
};

void de_des_adpter(char c)
{
    int idx=(count++)%8;
    de_des_func[count%8==0](idx,c);
}

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    int nRetCode = 0;

    // initialize MFC and print and error on failure
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
    {
        // TODO: change error code to suit your needs
        cerr << _T("Fatal Error: MFC initialization failed") << endl;
        nRetCode = 1;
    }
    else
    {
        if (IsClipboardFormatAvailable(CF_TEXT) && OpenClipboard(NULL)) //CF_UNICODETEXT
        {
            HGLOBAL hMem = GetClipboardData(CF_TEXT); 
            if (hMem != NULL) 
            {
                LPTSTR lpStr = (LPTSTR)GlobalLock(hMem); 
                if (lpStr != NULL)
                    GlobalUnlock(hMem);
                DES_InitializeKey("12345678",0);
                DES_InitializeKey("87654321",1);
                TCHAR* Data=lpStr;
                int DataByte=strlen(lpStr);
                m_dictionary= new CPtrArray;
                //解码表
                TCHAR DecodeTable[] =
                {
                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                        62, // '+'
                        0, 0, 0,
                        63, // '/'
                        52, 53, 54, 55, 56, 57, 58, 59, 60, 61, // '0'-'9'
                        0, 0, 0, 0, 0, 0, 0,
                        0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
                        13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, // 'A'-'Z'
                        0, 0, 0, 0, 0, 0,
                        26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
                        39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, // 'a'-'z'
                };
                int nValue;
                int i= 0;
                while (i < DataByte)
                {
                    if (*Data != '\r' && *Data!='\n')
                    {
                        nValue = DecodeTable[*Data++] << 18;
                        nValue += DecodeTable[*Data++] << 12;
                        de_des_adpter((nValue & 0x00FF0000) >> 16);
                        if (*Data != '=')
                        {
                            nValue += DecodeTable[*Data++] << 6;
                            de_des_adpter((nValue & 0x0000FF00) >> 8);
                            if (*Data != '=')
                            {
                                nValue += DecodeTable[*Data++];
                                de_des_adpter(nValue & 0x000000FF);
                            }
                        }
                        i += 4;
                    }
                    else// 回车换行,跳过
                    {
                        Data++;
                        i++;
                    }
                }
                char szLast8Bits[8] = {0};
                char _temp8bytes[8] = {0};
                if(count<8)
                {
                    memcpy(_temp8bytes,srcBytes,8);
                    DES_DecryptData(_temp8bytes, 0);
                    DES_EncryptData(DES_GetPlaintext(), 1);
                    DES_DecryptData(szCiphertextInBytes, 0);
                    for(int ii=0;ii<8;ii++)
                        decompress_adpter(szPlaintextInBytes[ii]);
                }
                else if(count==8)
                {
                    DES_DecryptData(srcBytes, 0);
                    DES_EncryptData(DES_GetPlaintext(), 1);
                    DES_DecryptData(szCiphertextInBytes, 0);
                    for(int ii=0;ii<8;ii++)
                        decompress_adpter(szPlaintextInBytes[ii]);
                }
                else
                {
                    int iResidue = count % 8;
                    if(iResidue>0)
                        for(int ii=0;ii<iResidue;ii++)
                            decompress_adpter(srcBytes[ii]);
                }
                for(data=(m_SavedData == 0 && m_TotalBits == 0)?m_MaxCode[m_MaxBits]:m_SavedData >> (32 - m_MaxBits),m_SavedData <<= m_MaxBits,m_TotalBits -= m_MaxBits;
                data != m_MaxCode[m_MaxBits];
                data=(m_SavedData == 0 && m_TotalBits == 0)?m_MaxCode[m_MaxBits]:m_SavedData >> (32 - m_MaxBits),m_SavedData <<= m_MaxBits,m_TotalBits -= m_MaxBits)
                {
                    //  Check if the code exist in the dictionary
                    //  if not
                    //  Check if the code exist in the dictionary
                    //  Returns TRUE if so, and FALSE if not.

                    //  If the code is lower then 256, then the element is a normal
                    //  ASCII character, and as such is considered to be in the
                    //  dictionay.
                    if (data >= 256 && data - 256 >= (unsigned)m_dictionary->GetSize())
                    {
                        //  Get the last used character into the decod buffer
                        decodeString.Add((BYTE)character);
                        //  Decode the existing prefix into a known string of data
                        GetBytesFromCode(m_dictionary,&decodeString, prefix);
                    }
                    else
                    {
                        //  Decode the data into the decode buffer
                        GetBytesFromCode(m_dictionary,&decodeString, data);
                        //  Get the last letter inside the data, as the last used letter
                        character = decodeString.GetAt(decodeString.GetSize() - 1);
                    }

                    //  Go over the decode buffer, from the end to the start,
                    //  and write the information into the destination file
                    counter = decodeString.GetSize();
                    while (counter > 0)
                    {
                        writeData = (BYTE)decodeString.GetAt(--counter);
                        strDecode+=writeData;
                    }

                    //  Clear the decode buffer
                    decodeString.RemoveAll();
                    //  Add the new combination into the dictionary
                    //  Add a dictionary element.
                    //  Since the dictionary should already have all the values
                    //  between 0-255, we start it from 256.
                    dicElement *tmp = new dicElement;

                    tmp->m_Prefix = prefix;
                    tmp->m_Letter = (BYTE)character;

                    m_dictionary->Add(tmp);

                    //  Calculate the new buffer size to read now
                    DWORD value=m_dictionary->GetSize() + 257;
                    //  Check the value of the parameter against the Maximum number possible
                    //  and then returns the counter

                    //  This can also be acheived by right shifting the value until we get 0
                    //  and counting the number of times we doing it.

                    for (BYTE counter = 0; counter < 32; counter++)
                        if (value <= m_MaxCode[counter])
                            break;
                    m_MaxBits = counter;

                    //  Since the minimal number of bits we are using is 9 (256 is the begining of the dictionary), 
                    //  then the minimal number of bits is check to return a 9 in case a lower value will be
                    //  reached in the application
                    if (m_MaxBits < 9)
                        m_MaxBits = 9;              
                    //  Set the new prefix to use
                    prefix = data;
                    delete tmp;
                }
                delete m_dictionary;
                char *pMem;
                hMem = GlobalAlloc( GHND | GMEM_DDESHARE, strDecode.length()+1);
                if(hMem)
                {
                    pMem = (char*)GlobalLock(hMem);
                    strcpy(pMem,strDecode.c_str());
                    GlobalUnlock(hMem);
                    EmptyClipboard();
                    SetClipboardData(CF_TEXT,hMem);
                }
                CloseClipboard();
            }
        }
    }

    return nRetCode;
}

[C/C++]代码1

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

[C/C++]代码2

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

标签:c++

收藏

0人收藏

支持

0

反对

0

»更多 您可能感兴趣的代码
  1. 2017-07-23 12:42:20奇数魔方阵 by Kevin.
  2. 2017-07-18 14:15:24两种方法计算“算术表达式” by aiheng1988
  3. 2015-09-09 16:29:06将jpg转换为bmp格式的文件 by qqmmcc
  4. 2015-09-09 09:29:49可执行文件加密 by walker30
  5. 2015-09-08 18:42:46TCP端口占用查询 by 灵剑子
  6. 2015-09-08 14:16:34Luffar schack五子棋 by 蟋蟀哥
  7. 2015-09-08 10:39:34wav转mp3的程序 by 灵剑子
  8. 2015-09-05 16:54:59逐行搜索目录中的文件内容并输出到Excel by 蟋蟀哥
  9. 2015-09-03 20:10:15LZW+AES+Base64编码解码剪贴板文本 by 童学芬
  10. 2015-09-01 17:47:21猫里奥 by aiheng1988
  11. 2015-08-31 15:33:59模拟键盘操作发送字符串 by 千万不要郁闷

发表评论