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

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

?? ascryptocomp.int

?? CryptoKit使用簡便的加密解密控件。(源代碼
?? INT
?? 第 1 頁 / 共 2 頁
字號:
    function  GetKeyMaxByteLen: DWord;      override;
    function  GetKeyMinByteLen: DWord;      override;
  public
    constructor Create(AOwner: TComponent); override;
  end;

  TAS_IDEACryptography = 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;

  // asymmetric algorithms

  TAS_PrimeGenerator = class;
  TAS_Digest         = class;

  TSignEvent   = procedure (Sender: TObject; Data: Pointer; DataSize: DWord) of object;
  TVerifyEvent = procedure (Sender: TObject; Data: Pointer; DataSize: DWord; SignData: Pointer; SignSize: DWord) of object;

  TAS_RSACryptography = class(TAS_Cryptography)
  private
    FEncParam: string;
    FKeyD:           GiantInt;
    FKeyE:           GiantInt;
    FKeyN:           GiantInt;
    FPrimeGenerator: TAS_PrimeGenerator;
    FEncryptScheme:  TRSAEncryptionScheme;
    FEncryptDigest:  TAS_Digest;
    FSignDigest:     TAS_Digest;
    FSignature:      TMemoryStream;
    FOnChangeKeyN:   TNotifyEvent;
    FOnChangeKeyE:   TNotifyEvent;
    FOnChangeKeyD:   TNotifyEvent;
    FOnBeforeSign:   TSignEvent;
    FOnAfterSign:    TSignEvent;
    FOnAfterVerify:  TVerifyEvent;
    FOnBeforeVerify: TVerifyEvent;
    function  GetKeyDHexStr: string;
    function  GetKeyEHexStr: string;
    function  GetKeyNHexStr: string;
    procedure SetKeyDHexStr(const Value: string);
    procedure SetKeyEHexStr(const Value: string);
    procedure SetKeyNHexStr(const Value: string);
    function  GetSmallPubExp: DWord;
    procedure SetSmallPubExp(Value: DWord);
  private
    function  RSAEncryptOaep(Source: Pointer; SourceLen: DWord): Boolean;
    function  RSADecryptOaep(EncData: Pointer; EncLen: DWord): Boolean;
    function  RSAEncryptPkcs1(Source: Pointer; SourceLen: DWord): Boolean;
    function  RSADecryptPkcs1(EncData: Pointer; EncLen: DWord): Boolean;
    function  RSASignPkcs1(Source: Pointer; SourceLen: DWord): Boolean;
    function  RSAVerifyPkcs1(Source: Pointer; SourceLen: DWord; SignData: Pointer; SignLen: DWord): Boolean;
    function  EmeEncodeOaep(Source:  Pointer;  SourceLen: Integer; EncData: PByteArray; EncLen: Integer): Boolean;
    function  EmeDecodeOaep(EncData: PByteArray; EncLen: Integer; DecData: Pointer; var DecLen: Integer): Boolean;
    procedure GenerateAndXorMask(Z: PByteArray; ZSize: Integer; Mask: PByteArray; MaskSize: Integer);
    function  EmeEncodePkcs1(Source: Pointer;  SourceLen: Integer; EncData: PByteArray; EncLen: Integer): Boolean;
    function  EmeDecodePkcs1(EncData: PByteArray; EncLen: Integer; DecData: Pointer; var DecLen: Integer): Boolean;
    function  EmsaEncodePkcs1(Source: Pointer; SourceLen: Integer; EncData: PByteArray; EncLen: Integer): Boolean;
    function  IsReadyToSign: Boolean;
    function  IsReadyToVerify: Boolean;
    procedure SetReadyToSign(const Value: Boolean);
    procedure SetReadyToVerify(const Value: Boolean);
  protected
    procedure DoEncrypt(Data: Pointer; DataSize: DWord); override;
    procedure DoDecrypt(Data: Pointer; DataSize: DWord); override;
    procedure DoSign(Data: Pointer; DataSize: DWord);    virtual;
    procedure DoVerify(Data: Pointer; DataSize: DWord; SignData: Pointer; SignSize: DWord); virtual;
    procedure DoGenKeys(KeyByteLen: DWord);              override;
    procedure DoLoadKeys(const FileName: string);        override;
    procedure DoSaveKeys(const FileName: string);        override;
    function  GetKeyMaxByteLen: DWord;                   override;
    function  GetKeyMinByteLen: DWord;                   override;
    function  IsReadyToEncrypt: Boolean;                 override;
    function  IsReadyToDecrypt: Boolean;                 override;
    function  GetKeyNumBits: DWord;                      override;
    procedure SetCipherInPlace(Value: Boolean);          override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure SignData(Data: Pointer; DataSize: DWord);
    procedure SignFile(const FileName: string);
    procedure VerifySignature(Data: Pointer; DataSize: DWord; SignData: Pointer; SignSize: DWord);
    procedure VerifyFileSignature(const FileName: string; SignData: Pointer; SignSize: DWord);
    procedure LoadSignatureFromFile(const FileName: string);
    procedure SaveSignatureToFile(const FileName: string);
    property KeyD:             GiantInt             read FKeyD;
    property KeyE:             GiantInt             read FKeyE;
    property KeyN:             GiantInt             read FKeyN;
    property Signature:        TMemoryStream        read FSignature;
  published
    property EncryptingDigest: TAS_Digest           read FEncryptDigest  write FEncryptDigest;
    property SigningDigest:    TAS_Digest           read FSignDigest     write FSignDigest;
    property EncodingParam:    string               read FEncParam       write FEncParam;
    property EncryptionScheme: TRSAEncryptionScheme read FEncryptScheme  write FEncryptScheme   default esOaep;
    property KeyDHexStr:       string               read GetKeyDHexStr   write SetKeyDHexStr;
    property KeyEHexStr:       string               read GetKeyEHexStr   write SetKeyEHexStr;
    property KeyNHexStr:       string               read GetKeyNHexStr   write SetKeyNHexStr;
    property SmallPublicExp:   DWord                read GetSmallPubExp  write SetSmallPubExp   stored False;
    property PrimeGenerator:   TAS_PrimeGenerator   read FPrimeGenerator write FPrimeGenerator;
    property ReadyToSign:      Boolean              read IsReadyToSign   write SetReadyToSign   stored False;
    property ReadyToVerify:    Boolean              read IsReadyToVerify write SetReadyToVerify stored False;
    property OnChangeKeyE:     TNotifyEvent         read FOnChangeKeyE   write FOnChangeKeyE;
    property OnChangeKeyD:     TNotifyEvent         read FOnChangeKeyD   write FOnChangeKeyD;
    property OnChangeKeyN:     TNotifyEvent         read FOnChangeKeyN   write FOnChangeKeyN;
    property OnBeforeSign:     TSignEvent           read FOnBeforeSign   write FOnBeforeSign;
    property OnAfterSign:      TSignEvent           read FOnAfterSign    write FOnAfterSign;
    property OnBeforeVerify:   TVerifyEvent         read FOnBeforeVerify write FOnBeforeVerify;
    property OnAfterVerify:    TVerifyEvent         read FOnAfterVerify  write FOnAfterVerify;
  end;

  TGenRandomNotifyEvent = procedure (Sender: TObject; rnd: GiantInt) of object;
  TCustomGenRandomEvent = procedure (Sender: TObject; rnd: GiantInt; NumBits: Integer; top, bottom: Boolean) of object;

  TAS_RandomGenerator = class(TAS_Component)
  private
    FOnCustomGenRandom: TCustomGenRandomEvent;
    FOnBeforeGenRandom: TGenRandomNotifyEvent;
    FOnAfterGenRandom:  TGenRandomNotifyEvent;
  protected
    procedure DoGenRandom(rnd: GiantInt; NumBits: Integer; top, bottom: Boolean); virtual;
  public
    constructor Create(AOwner: TComponent); override;
    procedure GenerateRandom(rnd: GiantInt; NumBits: Integer; top, bottom: Boolean);
  published
    property OnCustomGenRandom: TCustomGenRandomEvent read FOnCustomGenRandom write FOnCustomGenRandom;
    property OnBeforeGenRandom: TGenRandomNotifyEvent read FOnBeforeGenRandom write FOnBeforeGenRandom;
    property OnAfterGenRandom:  TGenRandomNotifyEvent read FOnAfterGenRandom  write FOnAfterGenRandom;
  end;

  TGenPrimeNotifyEvent = procedure (Sender: TObject; prime: GiantInt) of object;
  TCustomGenPrimeEvent = procedure (Sender: TObject; prime: GiantInt; NumBits: Integer) of object;

  TAS_PrimeGenerator = class(TAS_Component)
  private
    FRandomGenerator:  TAS_RandomGenerator;
    FOnCustomGenPrime: TCustomGenPrimeEvent;
    FOnBeforeGenPrime: TGenPrimeNotifyEvent;
    FOnAfterGenPrime:  TGenPrimeNotifyEvent;
    FOnTryRandomPrime: TGenPrimeNotifyEvent;
  protected
    procedure DoGenPrime(prime: GiantInt; NumBits: Integer); virtual;
    function  IsPrime(n: GiantInt; checks: Integer): Boolean; virtual;
  public
    constructor Create(AOwner: TComponent); override;
    procedure GeneratePrime(prime: GiantInt; NumBits: Integer);
  published
    property RandomGenerator:  TAS_RandomGenerator  read FRandomGenerator  write FRandomGenerator;
    property OnCustomGenPrime: TCustomGenPrimeEvent read FOnCustomGenPrime write FOnCustomGenPrime;
    property OnBeforeGenPrime: TGenPrimeNotifyEvent read FOnBeforeGenPrime write FOnBeforeGenPrime;
    property OnTryRandomPrime: TGenPrimeNotifyEvent read FOnTryRandomPrime write FOnTryRandomPrime;
    property OnAfterGenPrime:  TGenPrimeNotifyEvent read FOnAfterGenPrime  write FOnAfterGenPrime;
  end;

  // digest

  TAS_Digest = class(TAS_Component)
  private
    FOnBeforeCalcDigest: TNotifyEvent;
    FOnAfterCalcDigest: TNotifyEvent;
  protected
    FDigestSize: Integer;
    procedure DoCalcDigest(Data: Pointer; DataSize: DWord); virtual; abstract;
    function  GetDigest: Pointer;                           virtual; abstract;
  public
    procedure CalcDigest(Data: Pointer; DataSize: DWord);
    procedure CalcDigestOfString(const S: string);
    procedure CalcDigestOfFile(const FileName: string);
    property Digest:     Pointer read GetDigest;
    property DigestSize: Integer read FDigestSize;
  published
    property OnBeforeCalcDigest: TNotifyEvent read FOnBeforeCalcDigest write FOnBeforeCalcDigest;
    property OnAfterCalcDigest:  TNotifyEvent read FOnAfterCalcDigest  write FOnAfterCalcDigest;
  end;

  TAS_DigestMDX = class(TAS_Digest)
  private
    FDigestMDX: TDigestMDX;
    FDigestVer: TMDXVersion;
  protected
    procedure DoCalcDigest(Data: Pointer; DataSize: DWord); override;
    function  GetDigest: Pointer;                           override;
  public
    constructor Create(AOwner: TComponent); override;
    property DigestMDX: TDigestMDX read FDigestMDX;
  published
    property Version: TMDXVersion read FDigestVer write FDigestVer default dgMD5;
  end;

  TAS_DigestSHA1 = class(TAS_Digest)
  private
    FDigestSHA1: TDigest160;
  protected
    procedure DoCalcDigest(Data: Pointer; DataSize: DWord); override;
    function  GetDigest: Pointer;                           override;
  public
    constructor Create(AOwner: TComponent); override;
    property DigestSHA1: TDigest160 read FDigestSHA1;
  end;

  TAS_DigestRIPEMD160 = class(TAS_Digest)
  private
    FDigestRIP: TDigest160;
  protected
    procedure DoCalcDigest(Data: Pointer; DataSize: DWord); override;
    function  GetDigest: Pointer;                           override;
  public
    constructor Create(AOwner: TComponent); override;
    property DigestRIPMDE160: TDigest160 read FDigestRIP;
  end;

  // coders

  TAS_Coding = class(TAS_Component)
  private
    FCodeInPlace:    Boolean;
    FDecodedData:    TMemoryStream;
    FEncodedData:    TMemoryStream;
    FOnBeforeEncode: TNotifyEvent;
    FOnAfterEncode:  TNotifyEvent;
    FOnBeforeDecode: TNotifyEvent;
    FOnAfterDecode:  TNotifyEvent;
  protected
    procedure DoEncode(Data: Pointer; DataLen: DWord; EncData: Pointer; EncDataSize: DWord; var EncDataLen: DWord); virtual; abstract;
    procedure DoDecode(Data: Pointer; DataLen: DWord; DecData: Pointer; DecDataSize: DWord; var DecDataLen: DWord); virtual; abstract;
    procedure SetCodeInPlace(Value: Boolean);                                                                        virtual; abstract;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure Encode(Data: Pointer; DataSize: DWord);
    procedure Decode(Data: Pointer; DataSize: DWord);
    function  EncodeString(const S: string): string;
    function  DecodeString(const S: string): string;
    procedure EncodeFile(const FileName, DestFileName: string);
    procedure DecodeFile(const FileName, DestFileName: string);
    function  CalcEncodedSize(Data: Pointer; DataLen: DWord): DWord; virtual; abstract;
    function  CalcDecodedSize(Data: Pointer; DataLen: DWord): DWord; virtual; abstract;
    property  EncodedData:  TMemoryStream read FEncodedData;
    property  DecodedData:  TMemoryStream read FDecodedData;
  published
    property CodeInPlace:    Boolean      read FCodeInPlace    write SetCodeInPlace default False;
    property OnBeforeEncode: TNotifyEvent read FOnBeforeEncode write FOnBeforeEncode;
    property OnAfterEncode:  TNotifyEvent read FOnAfterEncode  write FOnAfterEncode;
    property OnBeforeDecode: TNotifyEvent read FOnBeforeDecode write FOnBeforeDecode;
    property OnAfterDecode:  TNotifyEvent read FOnAfterDecode  write FOnAfterDecode;
  end;

  TAS_Base64Coding = class(TAS_Coding)
  protected
    procedure DoEncode(Data: Pointer; DataLen: DWord; EncData: Pointer; EncDataSize: DWord; var EncDataLen: DWord); override;
    procedure DoDecode(Data: Pointer; DataLen: DWord; DecData: Pointer; DecDataSize: DWord; var DecDataLen: DWord); override;
    procedure SetCodeInPlace(Value: Boolean);                                                                        override;
  public
    constructor Create(AOwner: TComponent); override;
    function  CalcEncodedSize(Data: Pointer; DataLen: DWord): DWord; override;
    function  CalcDecodedSize(Data: Pointer; DataLen: DWord): DWord; override;
  end;

procedure Register;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品久久只有精品| 久久综合色鬼综合色| 日韩欧美一区二区三区在线| 久久久久99精品一区| 亚洲一卡二卡三卡四卡五卡| 国产一区二区毛片| 欧美人妇做爰xxxⅹ性高电影| 国产精品你懂的| 麻豆国产91在线播放| 色婷婷亚洲综合| 亚洲国产高清aⅴ视频| 精品一区二区三区日韩| 欧美特级限制片免费在线观看| 亚洲国产精品成人综合色在线婷婷| 五月开心婷婷久久| 色香蕉成人二区免费| 亚洲国产精品黑人久久久| 久久er精品视频| 欧美日韩精品一区二区在线播放| 中文字幕一区二区三区在线播放| 国产真实乱子伦精品视频| 欧美日韩精品电影| 午夜精品免费在线| 一本一道久久a久久精品 | 亚洲国产精品av| 精品一区中文字幕| 91精品免费观看| 婷婷综合久久一区二区三区| 91福利国产成人精品照片| 1000部国产精品成人观看| 成人污污视频在线观看| 国产欧美久久久精品影院| 久久精品国产精品青草| 精品国产一区二区三区av性色| 视频在线观看91| 在线播放中文一区| 日本欧美韩国一区三区| 欧美一区二区在线免费播放 | 欧美揉bbbbb揉bbbbb| 亚洲综合色在线| 欧美亚洲一区二区在线观看| 一区二区三区国产精品| 欧美男人的天堂一二区| 秋霞电影网一区二区| 日韩一区二区三区高清免费看看| 麻豆国产精品官网| 国产亚洲va综合人人澡精品| 岛国精品在线观看| 亚洲男同性恋视频| 欧美欧美欧美欧美首页| 久久精品国产澳门| 久久久高清一区二区三区| 丁香天五香天堂综合| 亚洲黄网站在线观看| 欧美日韩一区二区三区不卡| 蜜臀精品一区二区三区在线观看 | 国产无一区二区| 99re这里只有精品首页| 亚洲国产精品一区二区www| 欧美一区二区三区成人| 国产米奇在线777精品观看| 国产精品久久毛片| 欧美精品777| 国产成人免费在线| 一区二区三区91| 日韩一区二区三区免费看| 国产成人午夜精品影院观看视频| 亚洲女性喷水在线观看一区| 欧美久久久久久久久| 福利一区在线观看| 亚洲风情在线资源站| 国产欧美一区二区三区网站| 色综合久久88色综合天天免费| 美脚の诱脚舐め脚责91| 亚洲伦理在线免费看| 日韩一区二区三区四区 | 欧美日韩午夜影院| 国模一区二区三区白浆| 亚洲另类色综合网站| 精品乱人伦一区二区三区| 欧洲一区在线观看| 国产伦精品一区二区三区视频青涩| 一区二区三区四区不卡在线 | 人人超碰91尤物精品国产| 国产精品国产三级国产普通话三级 | 色综合天天做天天爱| 精品在线播放免费| 亚洲综合视频在线观看| 国产精品美女久久久久aⅴ| 欧美日韩国产a| 首页综合国产亚洲丝袜| 亚洲三级电影网站| 精品国产亚洲一区二区三区在线观看| 97久久精品人人爽人人爽蜜臀| 久久国产精品第一页| 亚洲最新在线观看| 国产精品久久免费看| 国产亚洲一本大道中文在线| 欧美一卡2卡3卡4卡| 在线这里只有精品| 色综合久久久久网| 91丨porny丨国产入口| 国产老女人精品毛片久久| 免费成人在线影院| 日本在线不卡视频| 亚洲chinese男男1069| 亚洲一区二区美女| 亚洲综合色区另类av| 樱桃视频在线观看一区| 1024亚洲合集| 自拍偷拍亚洲欧美日韩| 国产精品妹子av| 国产精品天天看| 国产精品美女久久久久aⅴ| 国产人成亚洲第一网站在线播放| www日韩大片| 久久久久久毛片| 国产丝袜欧美中文另类| 日本一区二区三区高清不卡 | 久久99国产精品麻豆| 久久精品国内一区二区三区| 麻豆国产91在线播放| 国产一区二区三区精品欧美日韩一区二区三区 | 日本丶国产丶欧美色综合| 色哟哟在线观看一区二区三区| 91亚洲精品乱码久久久久久蜜桃| 99热99精品| 欧美系列日韩一区| 91麻豆精品国产91久久久使用方法 | 国产成人精品在线看| 紧缚奴在线一区二区三区| 国产一区福利在线| 国产aⅴ精品一区二区三区色成熟| 成人中文字幕电影| 色综合久久久久| 欧美精品日日鲁夜夜添| 欧美不卡在线视频| 国产精品欧美久久久久无广告| 18欧美乱大交hd1984| 亚洲国产wwwccc36天堂| 免费高清在线视频一区·| 国产精品一区免费在线观看| 99久久精品国产导航| 在线不卡a资源高清| 久久这里只有精品视频网| 中文字幕亚洲一区二区av在线| 亚洲制服丝袜一区| 国产一区中文字幕| 一本色道久久综合精品竹菊| 69久久夜色精品国产69蝌蚪网| 26uuu色噜噜精品一区| 中文字幕一区二区三| 日韩高清欧美激情| 成人激情免费电影网址| 欧美精选在线播放| 中文字幕国产一区二区| 日韩电影在线观看一区| www.av亚洲| 91精品国产一区二区| 国产精品久久综合| 麻豆精品在线播放| 91麻豆国产香蕉久久精品| 欧美一区二区三区四区在线观看| 国产欧美精品区一区二区三区| 亚洲一区二区欧美| 成人激情黄色小说| 日韩精品最新网址| 一区av在线播放| 成人午夜电影小说| 精品久久一二三区| 爽好久久久欧美精品| 91丝袜高跟美女视频| 欧美精品一区二区三| 亚洲国产精品久久久久秋霞影院| 国产精品综合在线视频| 欧美日韩成人高清| 亚洲日本中文字幕区| 国产一区不卡精品| 日韩亚洲欧美综合| 亚洲一区二区高清| 一本久久a久久精品亚洲| 久久久99精品免费观看不卡| 奇米色一区二区三区四区| 在线观看一区二区视频| 国产精品素人一区二区| 国产精品一区二区久激情瑜伽| 3atv在线一区二区三区| 亚洲图片欧美色图| 色婷婷综合久久久久中文一区二区 | 欧美成人精品1314www| 亚洲高清免费观看高清完整版在线观看| 国产成人精品影视| 欧美成人女星排行榜| 麻豆一区二区99久久久久| 欧美精品 日韩| 亚洲动漫第一页| 欧美午夜影院一区| 亚洲成人7777| 欧美一区日韩一区| 免费观看日韩电影|