?? crypt.hpp
字號:
#ifndef _RAR_CRYPT_#define _RAR_CRYPT_enum { OLD_DECODE=0,OLD_ENCODE=1,NEW_CRYPT=2 };struct CryptKeyCacheItem{#ifndef _SFX_RTL_ CryptKeyCacheItem() { *Password=0; } ~CryptKeyCacheItem() { memset(AESKey,0,sizeof(AESKey)); memset(AESInit,0,sizeof(AESInit)); memset(Password,0,sizeof(Password)); }#endif byte AESKey[16],AESInit[16]; char Password[MAXPASSWORD]; bool SaltPresent; byte Salt[SALT_SIZE];};class CryptData{ private: void Encode13(byte *Data,uint Count); void Decode13(byte *Data,uint Count); void Crypt15(byte *Data,uint Count); void UpdKeys(byte *Buf); void Swap(byte *Ch1,byte *Ch2); void SetOldKeys(char *Password); Rijndael rin; byte SubstTable[256]; uint Key[4]; ushort OldKey[4]; byte PN1,PN2,PN3; byte AESKey[16],AESInit[16]; static CryptKeyCacheItem Cache[4]; static int CachePos; public: CryptData(); void SetCryptKeys(char *Password,byte *Salt,bool Encrypt,bool OldOnly=false); void SetAV15Encryption(); void SetCmt13Encryption(); void EncryptBlock20(byte *Buf); void DecryptBlock20(byte *Buf); void EncryptBlock(byte *Buf,int Size); void DecryptBlock(byte *Buf,int Size); void Crypt(byte *Data,uint Count,int Method); static void SetSalt(byte *Salt,int SaltSize);};#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -