亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ascryptocomp.int

?? CryptoKit使用簡便的加密解密控件。(源代碼
?? INT
?? 第 1 頁 / 共 2 頁
字號:
unit ASCryptoComp;
interface
uses
  Windows, SysUtils, Forms, Dialogs, Classes,
  ASCryptos, ASGtMath, ASUtils, ASAbout;

resourcestring
  sInvalidKey           = 'Invalid key';
  sPostInvalidKey       = 'Key considered invalid by application';
  sInvalidKeyMul        = 'Key length must be multiple of %d bytes';
  sInvalidKeySize       = 'Invalid key length: %d bytes, must be %d bytes';
  sKeyTooShort          = 'Key too short: %d bytes, must be at least %d bytes';
  sKeyTooLong           = 'Key too long: %d bytes, must not exceed %d bytes';
  sNotReadyEncrypt      = 'Not ready to encrypt, must have valid key';
  sNotReadyDecrypt      = 'Not ready to decrypt, must have valid key';
  sMustBePrime          = 'Number must be prime: %d';

  sRSANotReadySign      = 'Not ready to sign, must have valid private key';
  sRSANotReadyVerify    = 'Not ready to verify signature, must have valid public key';

  sRSAEncryptError      = 'RSA encode error';
  sRSADecryptError      = 'RSA decode error';
  sRSASignError         = 'RSA sign error';
  sRSAVerifyError       = 'RSA verify error';
  sRSANeedEncryptDigest = 'RSA must have EncryptionDigest component property assigned to operate on OAEP scheme';
  sRSANeedSignDigest    = 'RSA must have SigningDigest component property assigned to sign/verify data';
  sRSAMustHavePrimeGen  = 'RSA must have PrimeGenerator component property assigned to generate keys';
  sTrialWarning         = 'Sorry, trial version must be run from %s!';


type
  ErrorCipher = class(Exception);

  TAS_Component = class(TComponent)
  private
    FAbout: TAboutInfo;
  published
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure Error(ResStringRec: PResStringRec; const Args: array of const);
    property About: TAboutInfo read FAbout write FAbout;
  end;

  // cryptography

  TCipherBlockEvent = procedure (Sender: TObject; Block: Pointer; Offset, Size: DWord) of object;

  TAS_Cryptography = class(TAS_Component)
  private
    FCipherInPlace:        Boolean;
    FDecryptedData:        TMemoryStream;
    FEncryptedData:        TMemoryStream;
    FOnBeforeEncrypt:      TNotifyEvent;
    FOnAfterEncrypt:       TNotifyEvent;
    FOnBeforeDecrypt:      TNotifyEvent;
    FOnAfterDecrypt:       TNotifyEvent;
    FOnBeforeEncryptBlock: TCipherBlockEvent;
    FOnAfterEncryptBlock:  TCipherBlockEvent;
    FOnBeforeDecryptBlock: TCipherBlockEvent;
    FOnAfterDecryptBlock:  TCipherBlockEvent;
    FOnBeforeGenKeys:      TNotifyEvent;
    FOnAfterGenKeys:       TNotifyEvent;
    FOnBeforeLoadKeys:     TNotifyEvent;
    FOnAfterLoadKeys:      TNotifyEvent;
    FOnBeforeSaveKeys:     TNotifyEvent;
    FOnAfterSaveKeys:      TNotifyEvent;
  protected
    procedure DoEncrypt(Data: Pointer; DataSize: DWord); virtual; abstract;
    procedure DoDecrypt(Data: Pointer; DataSize: DWord); virtual; abstract;
    procedure DoGenKeys(KeyByteLen: DWord);              virtual; abstract;
    procedure DoLoadKeys(const FileName: string);        virtual; abstract;
    procedure DoSaveKeys(const FileName: string);        virtual; abstract;
    function  GetKeyMinByteLen: DWord;                   virtual; abstract;
    function  GetKeyMaxByteLen: DWord;                   virtual; abstract;
    procedure SetKeyMinByteLen(Value: DWord);             // dummy
    procedure SetKeyMaxByteLen(Value: DWord);             // dummy
    function  IsReadyToEncrypt: Boolean;                 virtual; abstract;
    function  IsReadyToDecrypt: Boolean;                 virtual; abstract;
    procedure SetReadyToEncrypt(Value: Boolean);         // dummy
    procedure SetReadyToDecrypt(Value: Boolean);         // dummy
    function  GetKeyNumBits: DWord;                      virtual; abstract;
    procedure SetKeyNumBits(Value: DWord);               // dummy
    procedure SetCipherInPlace(Value: Boolean);          virtual;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure Encrypt(Data: Pointer; DataSize: DWord);
    procedure Decrypt(Data: Pointer; DataSize: DWord);
    procedure EncryptFile(const FileName, DestFileName: string);
    procedure DecryptFile(const FileName, DestFileName: string);
    procedure GenerateKeys(KeyByteLen: DWord);
    procedure LoadKeysFromFile(const FileName: string);
    procedure SaveKeysToFile(const FileName: string);
    property  EncryptedData:    TMemoryStream read FEncryptedData;
    property  DecryptedData:    TMemoryStream read FDecryptedData;
  published
    property CipherInPlace:        Boolean           read FCipherInPlace        write SetCipherInPlace default False;
    property KeyMinByteLen:        DWord             read GetKeyMinByteLen      write SetKeyMinByteLen  stored False;
    property KeyMaxByteLen:        DWord             read GetKeyMaxByteLen      write SetKeyMaxByteLen  stored False;
    property KeyNumBits:           DWord             read GetKeyNumBits         write SetKeyNumBits     stored False;
    property ReadyToEncrypt:       Boolean           read IsReadyToEncrypt      write SetReadyToEncrypt stored False;
    property ReadyToDecrypt:       Boolean           read IsReadyToDecrypt      write SetReadyToDecrypt stored False;
    property OnBeforeEncrypt:      TNotifyEvent      read FOnBeforeEncrypt      write FOnBeforeEncrypt;
    property OnAfterEncrypt:       TNotifyEvent      read FOnAfterEncrypt       write FOnAfterEncrypt;
    property OnBeforeDecrypt:      TNotifyEvent      read FOnBeforeDecrypt      write FOnBeforeDecrypt;
    property OnAfterDecrypt:       TNotifyEvent      read FOnAfterDecrypt       write FOnAfterDecrypt;
    property OnBeforeEncryptBlock: TCipherBlockEvent read FOnBeforeEncryptBlock write FOnBeforeEncryptBlock;
    property OnAfterEncryptBlock:  TCipherBlockEvent read FOnAfterEncryptBlock  write FOnAfterEncryptBlock;
    property OnBeforeDecryptBlock: TCipherBlockEvent read FOnBeforeDecryptBlock write FOnBeforeDecryptBlock;
    property OnAfterDecryptBlock:  TCipherBlockEvent read FOnAfterDecryptBlock  write FOnAfterDecryptBlock;
    property OnBeforeGenKeys:      TNotifyEvent      read FOnBeforeGenKeys      write FOnBeforeGenKeys;
    property OnAfterGenKeys:       TNotifyEvent      read FOnAfterGenKeys       write FOnAfterGenKeys;
    property OnBeforeLoadKeys:     TNotifyEvent      read FOnBeforeLoadKeys     write FOnBeforeLoadKeys;
    property OnAfterLoadKeys:      TNotifyEvent      read FOnAfterLoadKeys      write FOnAfterLoadKeys;
    property OnBeforeSaveKeys:     TNotifyEvent      read FOnBeforeSaveKeys     write FOnBeforeSaveKeys;
    property OnAfterSaveKeys:      TNotifyEvent      read FOnAfterSaveKeys      write FOnAfterSaveKeys;
  end;

  // symmetric algorithms

  TValidateKeyEvent = procedure (Sender: TObject; Key: Pointer; KeyByteLen: Integer; var KeyValid: Boolean) of object;

  TAS_SymmCryptography = class(TAS_Cryptography)
  private
    FCipherMode:           TCipherMode;
    FBlockSize:            DWord;
    FUserKey:              Pointer;
    FUserKeyByteLen:       DWord;
    FExtendedKey:          Pointer;
    FExtKeyByteLen:        DWord;
    FInitVector:           Pointer;
    FInitVectorSize:       DWord;
    FOnChangeKey:          TNotifyEvent;
    FOnPostValidateKey:    TValidateKeyEvent;
    FOnChangeInitVector:   TNotifyEvent;
    function  GetUserKeyHexStr: string;
    procedure SetUserKeyHexStr(const Value: string);
    function  GetUserKeyText: string;
    procedure SetUserKeyText(const Value: string);
    function  GetInitVectorText: string;
    procedure SetInitVectorText(const Value: string);
    function  GetInitVectorHexStr: string;
    procedure SetInitVectorHexStr(const Value: string);
  protected
    procedure DoGenKeys(KeyByteLen: DWord);                   override;
    procedure DoLoadKeys(const FileName: string);             override;
    procedure DoSaveKeys(const FileName: string);             override;
    procedure DoEncrypt(Data: Pointer; DataSize: DWord);      override;
    procedure DoDecrypt(Data: Pointer; DataSize: DWord);      override;
    function  IsReadyToEncrypt: Boolean;                      override;
    function  IsReadyToDecrypt: Boolean;                      override;
    function  GetKeyNumBits: DWord;                           override;
  protected
    function  CalcExtKeyByteLen: DWord;                       virtual; abstract;
    procedure BlockEncrypt(Data: Pointer);                    virtual; abstract;
    procedure BlockDecrypt(Data: Pointer);                    virtual; abstract;
    procedure DoExpandKey;                                    virtual; abstract;
    procedure DoValidateKey(Key: Pointer; KeyByteLen: DWord); virtual;
    procedure UpdateKey;
    procedure SetCipherMode(const Value: TCipherMode);        virtual;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure ValidateKey(Key: Pointer; KeyByteLen: DWord);
    procedure SetUserKey(Key: Pointer; KeyByteLen: DWord);
    procedure SetInitVector(IV: Pointer; IVSize: DWord);
    property BlockSize:            DWord             read FBlockSize default DEF_BLOCK_BYTES;
    property UserKey:              Pointer           read FUserKey;
    property UserKeyByteLen:       DWord             read FUserKeyByteLen;
    property ExtendedKey:          Pointer           read FExtendedKey;
    property ExtKeyByteLen:        DWord             read FExtKeyByteLen;
    property InitVector:           Pointer           read FInitVector;
    property InitVectorSize:       DWord             read FInitVectorSize;
  published
    property CipherMode:           TCipherMode       read FCipherMode           write SetCipherMode default cmECB;
    property KeyHexStr:            string            read GetUserKeyHexStr      write SetUserKeyHexStr stored False;
    property KeyText:              string            read GetUserKeyText        write SetUserKeyText;
    property InitVectorText:       string            read GetInitVectorText     write SetInitVectorText;
    property InitVectorHexStr:     string            read GetInitVectorHexStr   write SetInitVectorHexStr stored False;
    property OnChangeKey:          TNotifyEvent      read FOnChangeKey          write FOnChangeKey;
    property OnChangeInitVector:   TNotifyEvent      read FOnChangeInitVector   write FOnChangeInitVector;
    property OnPostValidateKey:    TValidateKeyEvent read FOnPostValidateKey    write FOnPostValidateKey;
  end;

  TAS_DESCryptography = class(TAS_SymmCryptography)
  private
    FCipherMask: DWord;
  protected
    function  CalcExtKeyByteLen: DWord;     override;
    procedure BlockEncrypt(Data: Pointer);  override;
    procedure BlockDecrypt(Data: Pointer);  override;
    procedure DoExpandKey;                  override;
    procedure DoValidateKey(Key: Pointer; KeyByteLen: DWord); override;
    function  GetKeyMinByteLen: DWord;      override;
    function  GetKeyMaxByteLen: DWord;      override;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property CipherMask: DWord read FCipherMask write FCipherMask default DES_TRIPLE_CODEMASK; // triple DES = (enc, dec, enc)
  end;

  TAS_RC2Cryptography = class(TAS_SymmCryptography)
  private
    FEffBits: DWord;
    procedure SetEffBits(Value: DWord);
  protected
    function  CalcExtKeyByteLen: DWord;     override;
    procedure BlockEncrypt(Data: Pointer);  override;
    procedure BlockDecrypt(Data: Pointer);  override;
    procedure DoExpandKey;                  override;
    function  GetKeyMaxByteLen: DWord;      override;
    function  GetKeyMinByteLen: DWord;      override;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property EffectiveBits: DWord read FEffBits write SetEffBits default RC2_DEF_EFFBITS;
  end;

  TAS_RC4Cryptography = class(TAS_SymmCryptography)
  private
  protected
    function  CalcExtKeyByteLen: DWord;     override;
    procedure DoEncrypt(Data: Pointer; DataSize: DWord); override;
    procedure DoDecrypt(Data: Pointer; DataSize: DWord); override;
    procedure DoExpandKey;                  override;
    function  GetKeyMaxByteLen: DWord;      override;
    function  GetKeyMinByteLen: DWord;      override;
    procedure SetCipherMode(const Value: TCipherMode);   override;
  public
    constructor Create(AOwner: TComponent); override;
  end;

  TAS_RC5Cryptography = class(TAS_SymmCryptography)
  private
    FNumRounds: Integer;
    procedure SetNumRounds(Value: Integer);
  protected
    function  CalcExtKeyByteLen: DWord;     override;
    procedure BlockEncrypt(Data: Pointer);  override;
    procedure BlockDecrypt(Data: Pointer);  override;
    procedure DoExpandKey;                  override;
    function  GetKeyMaxByteLen: DWord;      override;
    function  GetKeyMinByteLen: DWord;      override;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property NumRounds: Integer read FNumRounds write SetNumRounds default RC5_DEF_ROUNDS;
  end;

  TAS_BFCryptography = class(TAS_SymmCryptography)
  protected
    function  CalcExtKeyByteLen: DWord;     override;
    procedure BlockEncrypt(Data: Pointer);  override;
    procedure BlockDecrypt(Data: Pointer);  override;
    procedure DoExpandKey;                  override;
    function  GetKeyMaxByteLen: DWord;      override;
    function  GetKeyMinByteLen: DWord;      override;
  public
    constructor Create(AOwner: TComponent); override;
  end;

  TAS_CASTCryptography = class(TAS_SymmCryptography)
  protected
    function  CalcExtKeyByteLen: DWord;     override;
    procedure BlockEncrypt(Data: Pointer);  override;
    procedure BlockDecrypt(Data: Pointer);  override;
    procedure DoExpandKey;                  override;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性色生活片| 最新热久久免费视频| 91在线视频播放| 国产精品77777| 国产成人一区二区精品非洲| 久久成人麻豆午夜电影| 男女视频一区二区| 日本aⅴ精品一区二区三区| 午夜久久电影网| 男人的j进女人的j一区| 美女视频网站久久| 狠狠色丁香婷婷综合| 国产成人一区二区精品非洲| 成人性色生活片| 91国产成人在线| 这里是久久伊人| 欧美不卡123| 中文无字幕一区二区三区| 中文字幕av不卡| 一区二区三区日韩欧美| 午夜欧美在线一二页| 久久av中文字幕片| 粉嫩绯色av一区二区在线观看 | 欧美久久免费观看| 777亚洲妇女| 久久综合九色综合久久久精品综合| 久久综合久久鬼色中文字| 欧美高清一级片在线观看| 亚洲精品一二三| 老鸭窝一区二区久久精品| 成人av资源站| 欧美日韩精品一区二区| 久久久久久久综合| 夜夜爽夜夜爽精品视频| 国产主播一区二区| 欧美亚洲国产一区二区三区| 日韩欧美一二区| 亚洲日本丝袜连裤袜办公室| 秋霞电影网一区二区| av在线免费不卡| 日韩精品一区二区三区在线观看 | 欧美日韩一区二区三区在线| 精品盗摄一区二区三区| 久久精品在线免费观看| 91麻豆文化传媒在线观看| 色综合久久久久久久久| 56国语精品自产拍在线观看| 国产日韩亚洲欧美综合| 日韩福利电影在线| 一本一道久久a久久精品| 日韩精品一区二区三区在线播放| 亚洲欧洲另类国产综合| 国产一区久久久| 欧美久久婷婷综合色| 亚洲视频在线观看三级| 国产精品亚洲а∨天堂免在线| 在线观看免费视频综合| 欧美激情一区二区三区蜜桃视频| 日韩国产欧美一区二区三区| 91麻豆swag| 国产精品久久久久久久久搜平片 | 丰满少妇在线播放bd日韩电影| 色综合视频一区二区三区高清| 久久亚洲综合色一区二区三区| 亚洲18女电影在线观看| 99re在线精品| 国产精品欧美综合在线| 国产mv日韩mv欧美| 欧美激情一区二区三区| 国产美女娇喘av呻吟久久| 日韩欧美一区中文| 男人的j进女人的j一区| 欧美一级xxx| 欧美aaaaaa午夜精品| 911精品国产一区二区在线| 午夜精品国产更新| 欧美男女性生活在线直播观看| 一区二区三区不卡视频在线观看| 99国产精品久久久久| 一色屋精品亚洲香蕉网站| 高清成人免费视频| 欧美精品一区二区三区四区| 免费黄网站欧美| 精品毛片乱码1区2区3区| 美女视频黄久久| 久久亚洲一级片| 国产高清无密码一区二区三区| 26uuu国产电影一区二区| 国产乱理伦片在线观看夜一区| 久久影院午夜论| www.欧美日韩国产在线| 亚洲免费观看高清完整版在线观看熊 | 美美哒免费高清在线观看视频一区二区| 欧美日韩精品福利| 久久99久久久欧美国产| 国产欧美一区二区精品秋霞影院| 国产不卡一区视频| 曰韩精品一区二区| 欧美一区二区大片| 国产精品99久久久久久有的能看 | 一区二区三区日韩欧美| 国产成人在线视频网址| 国产调教视频一区| 99久免费精品视频在线观看| 1024亚洲合集| 欧美三级视频在线播放| 久久99精品久久久| 中文一区在线播放| 欧美精品777| 国产成人在线看| 午夜视频一区在线观看| 久久综合久久99| 欧美亚洲国产一卡| 国产成人午夜精品影院观看视频 | 91丨九色丨黑人外教| 亚洲国产视频网站| 久久久91精品国产一区二区精品 | 高清在线不卡av| 一区二区欧美在线观看| 久久综合狠狠综合久久综合88 | 成人激情午夜影院| 日韩黄色在线观看| 国产精品日韩成人| 日韩欧美国产综合| 91黄色激情网站| 国产大片一区二区| 视频一区在线播放| 亚洲男人都懂的| 国产色91在线| 日韩一级精品视频在线观看| 99精品热视频| 国产成人一级电影| 韩国中文字幕2020精品| 香蕉加勒比综合久久| 国产精品久久久久久久浪潮网站| 精品国产乱码久久久久久闺蜜| 欧美午夜寂寞影院| 一本一本久久a久久精品综合麻豆| 国产资源精品在线观看| 美腿丝袜亚洲综合| 天堂av在线一区| 亚洲成人你懂的| 亚洲综合清纯丝袜自拍| 综合久久综合久久| 亚洲特级片在线| 综合久久一区二区三区| 亚洲欧洲精品一区二区三区| 日本一区二区三区四区| 欧美精彩视频一区二区三区| 精品国产伦一区二区三区观看体验 | 欧美mv日韩mv亚洲| 日韩一区二区电影在线| 欧美精品一二三| 欧美日韩免费在线视频| 欧美色图片你懂的| 欧美色视频一区| 欧美日韩视频专区在线播放| 欧美视频第二页| 欧美日韩国产免费一区二区| 欧美日韩一区不卡| 欧美一区二区三区在线视频| 日韩网站在线看片你懂的| 日韩欧美高清在线| 亚洲精品在线免费观看视频| 精品久久人人做人人爽| 国产婷婷色一区二区三区四区| 欧美激情中文字幕| 亚洲日本免费电影| 亚洲成人自拍偷拍| 久久国产综合精品| 成人午夜激情视频| 欧美亚洲免费在线一区| 91精品国产综合久久蜜臀| 337p日本欧洲亚洲大胆精品 | 欧美一区二区三区在线电影| 欧美tickling网站挠脚心| 国产精品色在线观看| 亚洲综合免费观看高清在线观看| 一区二区三区蜜桃网| 日本视频在线一区| 成人性生交大片免费| 欧美图片一区二区三区| 日韩免费成人网| 亚洲欧美日韩精品久久久久| 日欧美一区二区| 成人三级伦理片| 7777精品伊人久久久大香线蕉超级流畅 | 欧美综合色免费| 欧美一级二级三级乱码| 国产精品国产三级国产普通话三级 | 91麻豆精品一区二区三区| 欧美精品三级在线观看| 国产欧美日韩一区二区三区在线观看 | 制服丝袜av成人在线看| 国产日韩欧美精品综合| 午夜久久久影院| 不卡欧美aaaaa| 日韩精品一区二区在线| 亚洲欧美日本韩国| 国产另类ts人妖一区二区|