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

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

?? dcpcrypt2.pas

?? wbs43open-src.zip 數字隱藏工具
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{******************************************************************************}
{* DCPcrypt v2.0 written by David Barton (crypto@cityinthesky.co.uk) **********}
{******************************************************************************}
{* Main component definitions *************************************************}
{******************************************************************************}
{* Copyright (c) 1999-2003 David Barton                                       *}
{* Permission is hereby granted, free of charge, to any person obtaining a    *}
{* copy of this software and associated documentation files (the "Software"), *}
{* to deal in the Software without restriction, including without limitation  *}
{* the rights to use, copy, modify, merge, publish, distribute, sublicense,   *}
{* and/or sell copies of the Software, and to permit persons to whom the      *}
{* Software is furnished to do so, subject to the following conditions:       *}
{*                                                                            *}
{* The above copyright notice and this permission notice shall be included in *}
{* all copies or substantial portions of the Software.                        *}
{*                                                                            *}
{* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *}
{* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   *}
{* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    *}
{* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *}
{* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    *}
{* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        *}
{* DEALINGS IN THE SOFTWARE.                                                  *}
{******************************************************************************}
unit DCPcrypt2;

interface
uses
  Classes, Sysutils, DCPconst, DCPbase64;

//{$DEFINE DCP1COMPAT}  { DCPcrypt v1.31 compatiblity mode - see documentation }

{******************************************************************************}
    { A few predefined types to help out }

type
  Pbyte= ^byte;
  Pword= ^word;
  Pdword= ^dword;
  Pint64= ^int64;
  dword= longword;
  Pwordarray= ^Twordarray;
  Twordarray= array[0..19383] of word;
  Pdwordarray= ^Tdwordarray;
  Tdwordarray= array[0..8191] of dword;


{******************************************************************************}
    { The base class from which all hash algorithms are to be derived  }

type
  EDCP_hash= class(Exception);
  TDCP_hash= class(TComponent)
  protected
    fInitialized: boolean;  { Whether or not the algorithm has been initialized }

    procedure DeadInt(Value: integer);   { Knudge to display vars in the object inspector   }
    procedure DeadStr(Value: string);    { Knudge to display vars in the object inspector   }

  public
    property Initialized: boolean
      read fInitialized;

    class function GetId: integer; virtual;
      { Get the algorithm id }
    class function GetAlgorithm: string; virtual;
      { Get the algorithm name }
    class function GetHashSize: integer; virtual;
      { Get the size of the digest produced - in bits }
    class function SelfTest: boolean; virtual;
      { Tests the implementation with several test vectors }

    procedure Init; virtual;
      { Initialize the hash algorithm }
    procedure Final(var Digest); virtual;
      { Create the final digest and clear the stored information.
        The size of the Digest var must be at least equal to the hash size }
    procedure Burn; virtual;
      { Clear any stored information with out creating the final digest }

    procedure Update(const Buffer; Size: longword); virtual;
      { Update the hash buffer with Size bytes of data from Buffer }
    procedure UpdateStream(Stream: TStream; Size: longword);
      { Update the hash buffer with Size bytes of data from the stream }
    procedure UpdateStr(const Str: string);
      { Update the hash buffer with the string }

    destructor Destroy; override;

  published
    property Id: integer
      read GetId write DeadInt;
    property Algorithm: string
      read GetAlgorithm write DeadStr;
    property HashSize: integer
      read GetHashSize write DeadInt;
  end;
  TDCP_hashclass= class of TDCP_hash;


{******************************************************************************}
    { The base class from which all encryption components will be derived. }
    { Stream ciphers will be derived directly from this class where as     }
    { Block ciphers will have a further foundation class TDCP_blockcipher. }

type
  EDCP_cipher= class(Exception);
  TDCP_cipher= class(TComponent)
  protected
    fInitialized: boolean;  { Whether or not the key setup has been done yet }

    procedure DeadInt(Value: integer);   { Knudge to display vars in the object inspector   }
    procedure DeadStr(Value: string);    { Knudge to display vars in the object inspector   }

  public
    property Initialized: boolean
      read fInitialized;

    class function GetId: integer; virtual;
      { Get the algorithm id }
    class function GetAlgorithm: string; virtual;
      { Get the algorithm name }
    class function GetMaxKeySize: integer; virtual;
      { Get the maximum key size (in bits) }
    class function SelfTest: boolean; virtual;
      { Tests the implementation with several test vectors }

    procedure Init(const Key; Size: longword; InitVector: pointer); virtual;
      { Do key setup based on the data in Key, size is in bits }
    procedure InitStr(const Key: string; HashType: TDCP_hashclass);
      { Do key setup based on a hash of the key string }
    procedure Burn; virtual;
      { Clear all stored key information }
    procedure Reset; virtual;
      { Reset any stored chaining information }
    procedure Encrypt(const Indata; var Outdata; Size: longword); virtual;
      { Encrypt size bytes of data and place in Outdata }
    procedure Decrypt(const Indata; var Outdata; Size: longword); virtual;
      { Decrypt size bytes of data and place in Outdata }
    function EncryptStream(InStream, OutStream: TStream; Size: longword): longword;
      { Encrypt size bytes of data from InStream and place in OutStream }
    function DecryptStream(InStream, OutStream: TStream; Size: longword): longword;
      { Decrypt size bytes of data from InStream and place in OutStream }
    function EncryptString(const Str: string): string; virtual;
      { Encrypt a string and return Base64 encoded }
    function DecryptString(const Str: string): string; virtual;
      { Decrypt a Base64 encoded string }

    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

  published
    property Id: integer
      read GetId write DeadInt;
    property Algorithm: string
      read GetAlgorithm write DeadStr;
    property MaxKeySize: integer
      read GetMaxKeySize write DeadInt;
  end;
  TDCP_cipherclass= class of TDCP_cipher;


{******************************************************************************}
    { The base class from which all block ciphers are to be derived, this  }
    { extra class takes care of the different block encryption modes.      }

type
  TDCP_ciphermode= (cmCBC, cmCFB8bit, cmCFBblock, cmOFB, cmCTR); // cmCFB8bit is equal to DCPcrypt v1.xx's CFB mode
  EDCP_blockcipher= class(EDCP_cipher);
  TDCP_blockcipher= class(TDCP_cipher)
  protected
    fCipherMode: TDCP_ciphermode;  { The cipher mode the encrypt method uses  }

    procedure InitKey(const Key; Size: longword); virtual;

  public
    class function GetBlockSize: integer; virtual;
      { Get the block size of the cipher (in bits) }

    procedure SetIV(const Value); virtual;
      { Sets the IV to Value and performs a reset }
    procedure GetIV(var Value); virtual;
      { Returns the current chaining information, not the actual IV }

    procedure Encrypt(const Indata; var Outdata; Size: longword); override;
      { Encrypt size bytes of data and place in Outdata using CipherMode }
    procedure Decrypt(const Indata; var Outdata; Size: longword); override;
      { Decrypt size bytes of data and place in Outdata using CipherMode }
    function EncryptString(const Str: string): string; override;
      { Encrypt a string and return Base64 encoded }
    function DecryptString(const Str: string): string; override;
      { Decrypt a Base64 encoded string }
    procedure EncryptECB(const Indata; var Outdata); virtual; 
      { Encrypt a block of data using the ECB method of encryption }
    procedure DecryptECB(const Indata; var Outdata); virtual; 
      { Decrypt a block of data using the ECB method of decryption }
    procedure EncryptCBC(const Indata; var Outdata; Size: longword); virtual; 
      { Encrypt size bytes of data using the CBC method of encryption }
    procedure DecryptCBC(const Indata; var Outdata; Size: longword); virtual; 
      { Decrypt size bytes of data using the CBC method of decryption }
    procedure EncryptCFB8bit(const Indata; var Outdata; Size: longword); virtual; 
      { Encrypt size bytes of data using the CFB (8 bit) method of encryption }
    procedure DecryptCFB8bit(const Indata; var Outdata; Size: longword); virtual; 
      { Decrypt size bytes of data using the CFB (8 bit) method of decryption }
    procedure EncryptCFBblock(const Indata; var Outdata; Size: longword); virtual; 
      { Encrypt size bytes of data using the CFB (block) method of encryption }
    procedure DecryptCFBblock(const Indata; var Outdata; Size: longword); virtual; 
      { Decrypt size bytes of data using the CFB (block) method of decryption }
    procedure EncryptOFB(const Indata; var Outdata; Size: longword); virtual; 
      { Encrypt size bytes of data using the OFB method of encryption }
    procedure DecryptOFB(const Indata; var Outdata; Size: longword); virtual; 
      { Decrypt size bytes of data using the OFB method of decryption }
    procedure EncryptCTR(const Indata; var Outdata; Size: longword); virtual; 
      { Encrypt size bytes of data using the CTR method of encryption }
    procedure DecryptCTR(const Indata; var Outdata; Size: longword); virtual;
      { Decrypt size bytes of data using the CTR method of decryption }

    constructor Create(AOwner: TComponent); override;

  published
    property BlockSize: integer
      read GetBlockSize write DeadInt;
    property CipherMode: TDCP_ciphermode
      read fCipherMode write fCipherMode default cmCBC;
  end;
  TDCP_blockcipherclass= class of TDCP_blockcipher;


{******************************************************************************}
    { Helper functions }

procedure XorBlock(var InData1, InData2; Size: longword);


implementation
{$Q-}{$R-}


{** TDCP_hash *****************************************************************}

procedure TDCP_hash.DeadInt(Value: integer);
begin
end;

procedure TDCP_hash.DeadStr(Value: string);
begin
end;

class function TDCP_hash.GetId: integer;
begin
  Result:= -1;
end;

class function TDCP_hash.GetAlgorithm: string;
begin
  Result:= '';
end;

class function TDCP_hash.GetHashSize: integer;
begin
  Result:= -1;
end;

class function TDCP_hash.SelfTest: boolean;
begin
  Result:= false;
end;

procedure TDCP_hash.Init;
begin
end;

procedure TDCP_hash.Final(var Digest);
begin
end;

procedure TDCP_hash.Burn;
begin
end;

procedure TDCP_hash.Update(const Buffer; Size: longword);
begin
end;

procedure TDCP_hash.UpdateStream(Stream: TStream; Size: longword);
var
  Buffer: array[0..8191] of byte;
  i, read: integer;
begin
  for i:= 1 to (Size div Sizeof(Buffer)) do
  begin
    read:= Stream.Read(Buffer,Sizeof(Buffer));
    Update(Buffer,read);
  end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费观看高清| 亚洲美女免费视频| 国产日产亚洲精品系列| 精品av久久707| 国产精品久久久久9999吃药| 亚洲国产你懂的| 国产一区91精品张津瑜| 欧洲精品在线观看| 精品久久久久久久久久久久久久久久久| 国产日产亚洲精品系列| 亚洲1区2区3区视频| 成人做爰69片免费看网站| 粉嫩绯色av一区二区在线观看| 欧美在线制服丝袜| 亚洲国产精品黑人久久久| 亚洲高清三级视频| 大胆欧美人体老妇| 日韩一级免费一区| 国产精品素人一区二区| 热久久国产精品| 一本高清dvd不卡在线观看| 欧美一区二区三区日韩| 国产无一区二区| 麻豆一区二区三区| 欧美三级午夜理伦三级中视频| 久久久国产一区二区三区四区小说 | 国产精品卡一卡二| 国产在线日韩欧美| 日韩一区和二区| 国产精品日韩成人| 精品一区二区三区在线播放视频 | 精品盗摄一区二区三区| 亚洲一二三区视频在线观看| 波多野结衣的一区二区三区| 精品国产成人系列| 国产精品一区二区久久精品爱涩 | 亚洲精品菠萝久久久久久久| av资源网一区| 亚洲久草在线视频| 欧美日韩视频在线第一区 | 日韩欧美国产一区在线观看| 裸体一区二区三区| 国产亚洲福利社区一区| 国产成人免费9x9x人网站视频| 国产欧美精品在线观看| 不卡av免费在线观看| 亚洲精品日韩专区silk| 欧美精品粉嫩高潮一区二区| 日韩av在线播放中文字幕| 精品久久久久香蕉网| 国产不卡视频在线播放| 一区二区三区毛片| 日韩免费高清视频| 高清免费成人av| 亚洲精品免费在线观看| 欧美一级免费观看| 国产成人av电影在线| 亚洲免费观看高清完整版在线观看| 欧美午夜在线观看| 激情图区综合网| 亚洲黄一区二区三区| 日韩一区二区在线观看视频播放| 国产精品一区二区久久不卡| 亚洲女厕所小便bbb| 欧美一级二级三级乱码| 成人福利电影精品一区二区在线观看 | 欧洲生活片亚洲生活在线观看| 亚洲成av人片一区二区| 久久精品日韩一区二区三区| 色拍拍在线精品视频8848| 久久激情综合网| 亚洲精品国产精品乱码不99 | 91国偷自产一区二区开放时间 | 成a人片国产精品| 亚洲成av人影院在线观看网| 国产欧美日韩综合| 337p亚洲精品色噜噜| 成人免费毛片a| 一区二区在线观看视频| 久久久久国色av免费看影院| 欧美影院一区二区| 国产99久久久国产精品免费看| 亚洲一区二区三区不卡国产欧美 | 亚洲女同一区二区| 欧美不卡激情三级在线观看| 色综合久久中文字幕综合网| 国产一区二区主播在线| 肉肉av福利一精品导航| 亚洲视频狠狠干| 国产视频911| 欧美成人vps| 欧美色老头old∨ideo| 91玉足脚交白嫩脚丫在线播放| 久久99久久精品欧美| 天天爽夜夜爽夜夜爽精品视频| 中文字幕日本不卡| 久久毛片高清国产| 精品久久一区二区| 欧美肥妇bbw| 欧美日韩国产首页| 色伊人久久综合中文字幕| 成人性生交大片免费看视频在线| 久久精品国产99国产精品| 亚洲成av人片在线| 亚洲一区二区三区四区在线免费观看 | 91福利国产精品| 99视频在线精品| 成人成人成人在线视频| 国产麻豆欧美日韩一区| 黄页视频在线91| 精品一区二区影视| 韩国av一区二区三区| 韩国成人精品a∨在线观看| 丝袜诱惑制服诱惑色一区在线观看| 一区二区三区在线播放| 一区二区三区中文字幕| 夜夜嗨av一区二区三区网页 | 国产91富婆露脸刺激对白| 国产精品一品视频| 国产+成+人+亚洲欧洲自线| 国产不卡在线视频| 不卡一区二区在线| 91日韩精品一区| 欧美在线一区二区三区| 欧美日韩视频在线观看一区二区三区 | 国产午夜亚洲精品理论片色戒 | 久久精品一区二区三区不卡| 日本一区二区综合亚洲| 国产精品久久久久影院色老大| 一区视频在线播放| 亚洲一区中文在线| 日韩成人一级片| 国产精品18久久久久久久久 | 亚洲综合自拍偷拍| 午夜不卡av免费| 国产一区在线视频| 91免费观看在线| 欧美一区二区视频在线观看2022| 精品成人在线观看| 1024成人网| 日韩激情一区二区| 国产1区2区3区精品美女| 欧美在线免费视屏| 欧美本精品男人aⅴ天堂| 欧美激情一二三区| 天堂成人国产精品一区| 国产精品一区免费在线观看| 99麻豆久久久国产精品免费| 欧美日韩成人高清| 欧美国产乱子伦| 午夜精品123| aaa欧美日韩| 日本一区二区在线不卡| 亚洲电影视频在线| 国产美女在线精品| 欧美精品亚洲二区| 国产精品美女久久久久av爽李琼| 亚洲国产欧美日韩另类综合| 国产乱码字幕精品高清av | 久久美女艺术照精彩视频福利播放| 中文字幕日韩av资源站| 美腿丝袜在线亚洲一区| 99综合电影在线视频| 日韩欧美视频一区| 亚洲精品乱码久久久久久日本蜜臀| 蜜桃av噜噜一区二区三区小说| 91麻豆.com| 国产肉丝袜一区二区| 人人爽香蕉精品| 91久久线看在观草草青青| 久久精品免费在线观看| 七七婷婷婷婷精品国产| 在线免费观看日本一区| 国产精品视频看| 九九久久精品视频| 欧美日韩在线一区二区| 国产精品久久久久久久久免费丝袜 | 一区二区三区精品在线观看| 国产精品一区二区视频| 欧美一区二区三区播放老司机 | 国产女同互慰高潮91漫画| 老汉av免费一区二区三区| 欧美影院午夜播放| 亚洲摸摸操操av| av午夜精品一区二区三区| 国产亚洲污的网站| 久国产精品韩国三级视频| 欧美一区二区三区在线| 日韩电影在线免费看| 欧美日韩激情一区| 亚洲一区二区三区四区的| 一本色道久久综合狠狠躁的推荐| 国产精品久久三| 91丨九色丨国产丨porny| 日韩理论片一区二区| 92精品国产成人观看免费| 亚洲欧美日韩久久精品| 一本一本大道香蕉久在线精品 | 久久成人麻豆午夜电影| 欧美一级二级在线观看|