亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美美女喷水视频| 天堂影院一区二区| 97久久精品人人做人人爽| 久久久三级国产网站| 国产精品77777| 国产精品福利在线播放| 99精品视频在线播放观看| 国产精品成人在线观看| 一本在线高清不卡dvd| 一区二区三区色| 欧美一区二区三区白人| 激情图区综合网| 亚洲美女一区二区三区| 日韩一级免费观看| 东方欧美亚洲色图在线| 亚洲高清一区二区三区| 精品国产免费人成电影在线观看四季 | 日韩美女久久久| 制服丝袜日韩国产| www.成人在线| 久久精品久久综合| 亚洲一区二区在线播放相泽| 日韩欧美成人午夜| 在线亚洲+欧美+日本专区| 国产一区二区主播在线| 亚洲国产精品一区二区久久恐怖片 | 91在线小视频| 国产成都精品91一区二区三| 日韩avvvv在线播放| 亚洲综合免费观看高清完整版| 国产三级三级三级精品8ⅰ区| 91在线看国产| **欧美大码日韩| 精品av久久707| 国产欧美一区二区精品性色超碰| 久久久精品tv| 亚洲欧美另类图片小说| 三级一区在线视频先锋 | 国产精品传媒入口麻豆| 久久嫩草精品久久久精品| xf在线a精品一区二区视频网站| 色狠狠综合天天综合综合| 国产一区不卡在线| 人人精品人人爱| 日本不卡不码高清免费观看| 亚洲国产乱码最新视频| 亚洲综合精品久久| 一区二区高清免费观看影视大全 | 色综合久久中文综合久久牛| 成人深夜福利app| 成人国产精品免费网站| 国产成人福利片| 91在线免费看| 欧美三日本三级三级在线播放| 欧美精品一级二级三级| 欧美成人一区二区| 丝袜亚洲另类丝袜在线| 亚洲一二三区不卡| 久久疯狂做爰流白浆xx| 国产一级精品在线| 97aⅴ精品视频一二三区| 在线观看日韩国产| 欧美一区二区福利视频| 精品盗摄一区二区三区| 中文字幕不卡在线观看| 亚洲精品免费在线| 日日夜夜免费精品| 国内不卡的二区三区中文字幕| 成人性视频网站| 制服丝袜国产精品| 国产精品午夜电影| 亚洲网友自拍偷拍| 成人一区二区三区视频在线观看 | 99久精品国产| 2021中文字幕一区亚洲| 亚洲一区二区视频在线观看| 国产成人av一区二区三区在线| 色94色欧美sute亚洲13| 国产日韩亚洲欧美综合| 午夜精品久久久| 91在线观看一区二区| 26uuu欧美| 国产一区二区主播在线| 欧美群妇大交群中文字幕| 亚洲精品你懂的| 色婷婷精品久久二区二区蜜臀av| 欧美极品美女视频| 99久久婷婷国产精品综合| 国产欧美精品国产国产专区| 国产成a人亚洲| 亚洲欧美综合色| 91久久精品一区二区| 日韩高清不卡在线| 日韩欧美激情四射| 久久精工是国产品牌吗| 欧美午夜寂寞影院| 亚洲综合男人的天堂| 色哟哟国产精品免费观看| 自拍偷自拍亚洲精品播放| 在线视频中文字幕一区二区| 综合久久国产九一剧情麻豆| 色综合久久综合网| 丝袜诱惑制服诱惑色一区在线观看| 欧美精品一二三区| 免费观看在线综合| 久久久久久亚洲综合| 成人免费三级在线| 亚洲第一激情av| 久久久久久久综合日本| 日本精品裸体写真集在线观看| 日韩成人午夜精品| 欧美激情一区二区三区在线| 91美女视频网站| 精品伊人久久久久7777人| 亚洲欧洲成人av每日更新| 91精品国产综合久久福利软件 | 精品一区免费av| 亚洲欧美电影一区二区| 欧美一区二区免费视频| 91在线无精精品入口| 久久99在线观看| 亚洲一二三区在线观看| 国产欧美一区二区精品性| 欧洲亚洲精品在线| 国产99久久久久久免费看农村| 亚洲午夜久久久久久久久电影院| 日韩欧美一二三区| 欧美日韩大陆在线| 一本高清dvd不卡在线观看| 精品亚洲成av人在线观看| 亚洲成人自拍网| 亚洲天堂av一区| 日韩美女视频19| 欧美韩国日本综合| 国产欧美一区二区精品忘忧草| 91精品国产91热久久久做人人| 色婷婷av一区二区三区gif | 欧美网站一区二区| 99久久精品国产一区| 高清视频一区二区| 国产91综合网| 成人av在线资源网站| 99久久夜色精品国产网站| 懂色av一区二区三区蜜臀| 成人小视频免费在线观看| 成人高清免费观看| 懂色av一区二区三区免费看| 国产99一区视频免费| 成人性色生活片| 在线观看视频91| 日韩一卡二卡三卡国产欧美| 6080午夜不卡| 国产日韩一级二级三级| 亚洲欧美偷拍三级| 亚洲最新在线观看| 国产亚洲美州欧州综合国| 国产婷婷色一区二区三区在线| 欧美精品一区二区三区蜜桃视频| 久久综合一区二区| 国产精品美女久久久久aⅴ国产馆| 最近日韩中文字幕| 丝袜亚洲另类欧美综合| 国产永久精品大片wwwapp | 视频一区国产视频| 中文字幕中文字幕一区二区| 夜夜爽夜夜爽精品视频| 麻豆国产一区二区| 天堂精品中文字幕在线| 老司机免费视频一区二区| 国产一区二区伦理片| 在线观看日韩精品| 精品美女被调教视频大全网站| 久久久久久久一区| 视频一区免费在线观看| 懂色av一区二区三区免费看| 色噜噜狠狠色综合欧洲selulu| 777亚洲妇女| 亚洲欧美日韩在线| 高清不卡在线观看| 日韩欧美国产麻豆| 成人欧美一区二区三区白人| 日本不卡一区二区三区高清视频| 91丨porny丨户外露出| 国产精品日日摸夜夜摸av| 国产在线视频一区二区| 色婷婷亚洲精品| 亚洲视频在线一区| 北条麻妃国产九九精品视频| 欧美精品一区二区三区高清aⅴ| 亚洲蜜桃精久久久久久久| 国产69精品一区二区亚洲孕妇| 欧美精品欧美精品系列| 自拍av一区二区三区| 波多野结衣中文字幕一区二区三区| 欧美不卡一区二区| 日韩精品一级二级| 欧美日本国产视频| 日本在线播放一区二区三区| 日韩手机在线导航| 另类专区欧美蜜桃臀第一页|