⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crypt.hpp

📁 source code for unrar3.3.4,uppack the .rar files,for multi-os
💻 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 + -