183 lines
5.3 KiB
C
183 lines
5.3 KiB
C
![]() |
#pragma once
|
|||
|
#ifndef yxDESH
|
|||
|
#define yxDESH
|
|||
|
#include <string>
|
|||
|
//support CBC ECB mode,you can padding PKCS5 or NOPKCS by yuzj 2010 5 10
|
|||
|
#define NOPKCS 0 //Ĭ<><C4AC>
|
|||
|
#define PKCS5 1
|
|||
|
|
|||
|
|
|||
|
#define ECB_MODE 0 //Ĭ<><C4AC>
|
|||
|
#define CBC_MODE 1
|
|||
|
|
|||
|
class yxDES
|
|||
|
{
|
|||
|
public:
|
|||
|
static std::string Encrypt(const std::string &src, const char* key, int iMode = ECB_MODE,int iPKCS = PKCS5);
|
|||
|
static std::string Decrypt(const std::string &src, const char* key, int iMode = ECB_MODE,int iPKCS = PKCS5);
|
|||
|
|
|||
|
private:
|
|||
|
//<2F><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
yxDES(int length=8192);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
~yxDES();
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>üӽ<C3BC><D3BD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>0
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int m_iMode<64><65>int m_iPkcs
|
|||
|
void SetModeAndPKCS(int iMode = 0,int iPKCS = 0);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>IV,Ĭ<><C4AC>Ϊ{0,0,0,0,0,0,0,0}
|
|||
|
//<2F><><EFBFBD><EFBFBD>:8λ<38>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>char szvi[8]<5D><>char szviRev[8]
|
|||
|
void SetIV(char* srcBytes);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>16<31><36>28λ<38><CEBB>key
|
|||
|
//<2F><><EFBFBD><EFBFBD>:Դ8λ<38><CEBB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>(key),<2C><><EFBFBD><EFBFBD>key<65><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-1
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>private CreateSubKey<65><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>char SubKeys[keyN][16][48]
|
|||
|
void InitializeKey(const char* srcBytes,unsigned int keyN);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>8λ<38>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:8λ<38>ַ<EFBFBD><D6B7><EFBFBD>,ʹ<><CAB9>Key<65><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-1
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>private szCiphertext[16]
|
|||
|
// <20>û<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ciphertext<78>õ<EFBFBD>
|
|||
|
void EncryptData(char* _srcBytes,unsigned int keyN);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>16λʮ<CEBB><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:16λʮ<CEBB><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,ʹ<><CAB9>Key<65><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-1
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>private szPlaintext[8]
|
|||
|
// <20>û<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Plaintext<78>õ<EFBFBD>
|
|||
|
void DecryptData(char* _srcBytes,unsigned int keyN);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⳤ<EFBFBD><E2B3A4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>ⳤ<EFBFBD><E2B3A4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD>,ʹ<><CAB9>Key<65><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-1
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>private szFCiphertextAnyLength[8192]
|
|||
|
// <20>û<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CiphertextAnyLength<74>õ<EFBFBD>
|
|||
|
void EncryptAnyLength(char* _srcBytes,unsigned int _bytesLength,unsigned int keyN);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⳤ<EFBFBD><E2B3A4>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>ⳤ<EFBFBD><E2B3A4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD>,ʹ<><CAB9>Key<65><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-1
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>private szFPlaintextAnyLength[8192]
|
|||
|
// <20>û<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PlaintextAnyLength<74>õ<EFBFBD>
|
|||
|
void DecryptAnyLength(char* _srcBytes,unsigned int _bytesLength, unsigned int keyN);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:Bytes<65><73>Bits<74><73>ת<EFBFBD><D7AA>,
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>任<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>,Bits<74><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
void Bytes2Bits(const char *srcBytes, char* dstBits, unsigned int sizeBits);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:Bits<74><73>Bytes<65><73>ת<EFBFBD><D7AA>,
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>任<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>,Bits<74><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
void Bits2Bytes(char *dstBytes, char* srcBits, unsigned int sizeBits);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:Int<6E><74>Bits<74><73>ת<EFBFBD><D7AA>,
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>任<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
void Int2Bits(unsigned int srcByte, char* dstBits);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:Bits<74><73>Hex<65><78>ת<EFBFBD><D7AA>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>任<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>,Bits<74><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
void Bits2Hex(char *dstHex, char* srcBits, unsigned int sizeBits);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:Bits<74><73>Hex<65><78>ת<EFBFBD><D7AA>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>任<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>,Bits<74><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
void Hex2Bits(char *srcHex, char* dstBits, unsigned int sizeBits);
|
|||
|
|
|||
|
//szCiphertextInBinary<72><79>get<65><74><EFBFBD><EFBFBD>
|
|||
|
char* GetCiphertextInBinary();
|
|||
|
|
|||
|
//szCiphertextInHex<65><78>get<65><74><EFBFBD><EFBFBD>
|
|||
|
char* GetCiphertextInHex();
|
|||
|
|
|||
|
//Ciphertext<78><74>get<65><74><EFBFBD><EFBFBD>
|
|||
|
char* GetCiphertextInBytes();
|
|||
|
|
|||
|
//Plaintext<78><74>get<65><74><EFBFBD><EFBFBD>
|
|||
|
char* GetPlaintext();
|
|||
|
|
|||
|
//CiphertextAnyLength<74><68>get<65><74><EFBFBD><EFBFBD>
|
|||
|
char* GetCiphertextAnyLength();
|
|||
|
|
|||
|
//PlaintextAnyLength<74><68>get<65><74><EFBFBD><EFBFBD>
|
|||
|
char* GetPlaintextAnyLength();
|
|||
|
|
|||
|
//<2F>ַ<EFBFBD><D6B7><EFBFBD>ת16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
|
|||
|
void ConvertCiphertext2Hex(char *szPlainInBytes);
|
|||
|
|
|||
|
//16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
int ConvertHex2Ciphertext(const char *szCipherInBytes);
|
|||
|
|
|||
|
//CiphertextData<74><61><EFBFBD><EFBFBD>
|
|||
|
char* GetCiphertextData();
|
|||
|
|
|||
|
//hexCiphertextAnyLength<74><68><EFBFBD><EFBFBD>
|
|||
|
char* GetHexCipherAnyLengthData();
|
|||
|
|
|||
|
|
|||
|
|
|||
|
private:
|
|||
|
int m_iLength;
|
|||
|
char szSubKeys[2][16][48];//<2F><><EFBFBD><EFBFBD>2<EFBFBD><32>16<31><36>48λ<38><CEBB>Կ,<2C><>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3DES
|
|||
|
char szCiphertextRaw[64]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(64<36><34>Bits) int 0,1
|
|||
|
char szPlaintextRaw[64]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(64<36><34>Bits) int 0,1
|
|||
|
char szCiphertextInBytes[8];//<2F><><EFBFBD><EFBFBD>8λ<38><CEBB><EFBFBD><EFBFBD>
|
|||
|
char szPlaintextInBytes[8];//<2F><><EFBFBD><EFBFBD>8λ<38><CEBB><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
|
|||
|
char szCiphertextInBinary[65]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(64<36><34>Bits) char '0','1',<2C><><EFBFBD><EFBFBD>һλ<D2BB><CEBB>'\0'
|
|||
|
char szCiphertextInHex[17]; //<2F><><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>һλ<D2BB><CEBB>'\0'
|
|||
|
char szPlaintext[9];//<2F><><EFBFBD><EFBFBD>8λ<38><CEBB><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD>һλ<D2BB><CEBB>'\0'
|
|||
|
|
|||
|
char* szFCiphertextAnyLength;//<2F><><EFBFBD>ⳤ<EFBFBD><E2B3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
char* szFPlaintextAnyLength;//<2F><><EFBFBD>ⳤ<EFBFBD><E2B3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
|
|||
|
char* szCiphertextData;
|
|||
|
char* hexCiphertextAnyLength;
|
|||
|
|
|||
|
char sziv[8];//<2F><><EFBFBD><EFBFBD>IV
|
|||
|
char szivRev[8];//<2F><><EFBFBD><EFBFBD>IV
|
|||
|
|
|||
|
int m_iMode;//<2F>ӽ<EFBFBD><D3BD><EFBFBD>ģʽ
|
|||
|
int m_iPkcs;//<2F><><EFBFBD><EFBFBD>ģʽ
|
|||
|
|
|||
|
int data_base_length_;//<2F><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>泤<EFBFBD><E6B3A4>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>PC1<43>任<EFBFBD><E4BBBB>56λ<36><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD>ɵ<EFBFBD>szSubKeys<79><73><EFBFBD><EFBFBD>0-1
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>char szSubKeys[16][48]
|
|||
|
void CreateSubKey(char* sz_56key,unsigned int keyN);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:DES<45>е<EFBFBD>F<EFBFBD><46><EFBFBD><EFBFBD>,
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><>32λ,<2C><>32λ,key<65><79><EFBFBD><EFBFBD>(0-15),ʹ<>õ<EFBFBD>szSubKeys<79><73><EFBFBD><EFBFBD>0-1
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>ڱ任<DAB1><E4BBBB><EFBFBD><EFBFBD>32λ
|
|||
|
void FunctionF(char* sz_Li,char* sz_Ri,unsigned int iKey,unsigned int keyN);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:IP<49>任
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void InitialPermuteData(char* _src,char* _dst);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>32λ<32><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չλ48λ,
|
|||
|
//<2F><><EFBFBD><EFBFBD>:ԭ32λ<32>ַ<EFBFBD><D6B7><EFBFBD>,<2C><>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void ExpansionR(char* _src,char* _dst);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>1,<2C>ַ<EFBFBD><D6B7><EFBFBD>2,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
//<2F><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void XOR(char* szParam1,char* szParam2, unsigned int uiParamLength, char* szReturnValueBuffer);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:S-BOX , <20><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9>,
|
|||
|
//<2F><><EFBFBD><EFBFBD>:48λ<38><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD>:32λ<32>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
void CompressFuncS(char* _src48, char* _dst32);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>:IP<49><50><EFBFBD>任,
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD>任<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void PermutationP(char* _src,char* _dst);
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
#endif
|
|||
|
|