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

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

?? ascryptos.int

?? CryptoKit使用簡便的加密解密控件。(源代碼
?? INT
字號:
unit ASCryptos;
interface
uses
  SysUtils, Windows, Classes,
  ASGtMath, ASUtils;

// *****************************************************************************
// RSA
// *****************************************************************************

const
  RSA_DEF_SMALLPUBLICEXP =  3;
  RSA_MIN_NUMBITS      =  256;
  RSA_DEF_NUMBITS      = 1024;
  RSA_MAX_NUMBITS      = 4096;

const
  RSA_EME_OAEP_DELIM:   Byte =  01;
  RSA_EME_OAEP_PADC:    Byte =  00;

  RSA_EME_PKCS1_BEGIN:  Byte =  02;
  RSA_EME_PKCS1_END:    Byte =  00;

  RSA_EMSA_PKCS1_BEGIN: Byte =  01;
  RSA_EMSA_PKCS1_END:   Byte =  00;
  RSA_EMSA_PKCS1_PADC:  Byte = $FF;

type
  TRSAEncryptionScheme = (esPkcs1, esOaep);

// *****************************************************************************
// Symmetric
// *****************************************************************************

type
  TCipherMode = (cmECB, cmCBC, cmCFB, cmOFB);

const
  DEF_BLOCK_BYTES = 8;

// *****************************************************************************
// DES
// *****************************************************************************

const
  DES_USERKEY_BYTES =   8;

  DES_EXTKEY_BYTES  = 128;
  DES_BLOCK_BYTES   =   8;

  DES_TRIPLE_CODEMASK = 5;
  DES_MAX_QUANT       = 8 * sizeof(DWord);

type
  PDesExtendedKey = ^DesExtendedKey;
  DesExtendedKey = array[0..DES_EXTKEY_BYTES-1] of Byte;

  PDesTripleExtendedKey = ^DesTripleExtendedKey;
  DesTripleExtendedKey = array[0..2] of DesExtendedKey;

  PDesMultipleExtendedKey = ^DesMultipleExtendedKey;
  DesMultipleExtendedKey = array[0..DES_MAX_QUANT-1] of DesExtendedKey;

  PDesData = ^DesData;
  DesData  = array[0..DES_BLOCK_BYTES-1] of Byte;

  procedure DESKeySetup(Key: PByteArray; ExtKey: PDesExtendedKey);
  procedure DESTripleKeySetup(Key: PByteArray; ExtKey: PDesTripleExtendedKey);
  procedure DESExtKeySetup(Key: PByteArray; KeySize: DWord; ExtKey: PDesMultipleExtendedKey);

  procedure DESBlockCipher(ExtKey: PDesExtendedKey; Data: PByteArray; encrypting: Boolean);
  procedure DESTripleBlockCipher(ExtKey: PDesTripleExtendedKey; Data: PByteArray; encrypting: Boolean);
  procedure DESExtBlockCipher(ExtKey: PDesMultipleExtendedKey; Data: PByteArray; UserKeySize, mask: DWord; encrypting: Boolean);

// *****************************************************************************
// RC2
// *****************************************************************************

const
  RC2_MIN_KEY_BYTES = 1;
  RC2_MAX_KEY_BYTES = 128;

  RC2_EXTKEY_BYTES  = 128;
  RC2_EXTKEY_WORDS  = (RC2_EXTKEY_BYTES shr 1);

  RC2_BLOCK_BYTES   = 8;
  RC2_BLOCK_WORDS   = (RC2_BLOCK_BYTES shr 1);

  RC2_MIN_EFFBITS   =  40;
  RC2_DEF_EFFBITS   = 128;
  
type
  PRC2ExtendedKey = ^RC2ExtendedKey;
  RC2ExtendedKey = record
    case Integer of
      0: (B: array[0..RC2_EXTKEY_BYTES-1] of Byte);
      1: (W: array[0..RC2_EXTKEY_WORDS-1] of Word);
  end;

  PRC2Data = ^RC2Data;
  RC2Data = record
    case Integer of
      0: (B: array[0..RC2_BLOCK_BYTES-1] of Byte);  // 8 bytes
      1: (W: array[0..RC2_BLOCK_WORDS-1] of Word);  // 4 words (16 bit)
  end;

  procedure RC2KeySetup(Key: PByteArray; KeySize, EffectiveBits: DWord; ExtKey: PRC2ExtendedKey);
  procedure RC2BlockEncrypt(ExtKey: PRC2ExtendedKey; Data: PRC2Data);
  procedure RC2BlockDecrypt(ExtKey: PRC2ExtendedKey; Data: PRC2Data);

// *****************************************************************************
// RC4
// *****************************************************************************

const
  RC4_MIN_KEY_BYTES = 1;

  RC4_EXTKEY_DWORDS = 256;
  RC4_EXTKEY_BYTES  = RC4_EXTKEY_DWORDS * sizeof(DWord);
  RC4_BLOCK_BYTES   = 8;

type
  PRC4ExtendedKey = ^RC4ExtendedKey;
  RC4ExtendedKey = record
    x, y: DWord;
    data: array[0..RC4_EXTKEY_DWORDS-1] of DWord;
  end;

  PRC4Data = ^RC4Data;
  RC4Data  = array[0..RC4_BLOCK_BYTES-1] of Byte;

  procedure RC4KeySetup(Key: PByteArray; KeySize: DWord; ExtKey: PRC4ExtendedKey);
  procedure RC4BlockCipher(ExtKey: PRC4ExtendedKey; Data: PRC4Data; DataSize: DWord);

// *****************************************************************************
// RC5
// *****************************************************************************

const
  RC5_EXTKEY_DWORDS  = 64;
  RC5_EXTKEY_BYTES   = (RC5_EXTKEY_DWORDS * sizeof(DWord));
  RC5_BLOCK_BYTES    = 8;

  RC5_MAX_KEY_BYTES  = RC5_EXTKEY_BYTES;

  RC5_DEF_ROUNDS     = 12;
  RC5_MAX_ROUNDS     = 31;

type
  PRC5ExtendedKey = ^RC5ExtendedKey;
  RC5ExtendedKey  = record
    S: array[0..RC5_EXTKEY_DWORDS-1] of DWord;	// S-box
    numRounds: Integer;				// Number of rounds
  end;

  PRC5Data = ^RC5Data;
  RC5Data = record
    case Integer of
      0: (A1, A2: DWord);
      2: (B: array[0..7] of Byte);
  end;

  procedure RC5KeySetup(Key: PByteArray; KeySize: DWord; NumRounds: Integer; ExtKey: PRC5ExtendedKey);
  procedure RC5BlockEncrypt(ExtKey: PRC5ExtendedKey; Data: PRC5Data);
  procedure RC5BlockDecrypt(ExtKey: PRC5ExtendedKey; Data: PRC5Data);

// *****************************************************************************
// Blowfish
// *****************************************************************************

const
  BF_BLOCK_BYTES   =  8;
  BF_BLOCK_DWORDS  = BF_BLOCK_BYTES shr 2;
  BF_NUM_ROUNDS    = 16;

  BF_MAX_KEY_BYTES = (BF_NUM_ROUNDS+2) * 4;

type
  PBFExtendedKey = ^BFExtendedKey;
  BFExtendedKey = record
    P: array[0..BF_NUM_ROUNDS+2-1] of DWord;
    S: array[0..4*256-1] of DWord;
  end;

  PBfData = ^BfData;
  BfData = record
    case Integer of
      0: (D: array[0..BF_BLOCK_DWORDS-1] of DWord);
      1: (B: array[0..BF_BLOCK_BYTES -1] of Byte);
  end;

  procedure BFKeySetup(Key: PByteArray; KeySize: DWord; ExtKey: PBFExtendedKey);
  procedure BFBlockEncrypt(ExtKey: PBFExtendedKey; Data: PBFData);
  procedure BFBlockDecrypt(ExtKey: PBFExtendedKey; Data: PBFData);

// *****************************************************************************
// CAST
// *****************************************************************************

const
  CAST_BLOCK_BYTES  = 8;
  CAST_BLOCK_DWORDS = CAST_BLOCK_BYTES shr 2;

  CAST_MAX_KEY_BYTES = 16;

type
  PCASTExtendedKey = ^CASTExtendedKey;
  CASTExtendedKey = array[0..31] of DWord;

  PCASTData = ^CASTData;
  CASTData = record
    case Integer of
      0: (D: array[0..CAST_BLOCK_DWORDS-1] of DWord);
      1: (B: array[0..CAST_BLOCK_BYTES-1]  of Byte);
  end;

  procedure CASTKeySetup(Key: PByteArray; KeySize: DWord; ExtKey: PCASTExtendedKey);
  procedure CASTBlockEncrypt(ExtKey: PCASTExtendedKey; Data: PCASTData);
  procedure CASTBlockDecrypt(ExtKey: PCASTExtendedKey; Data: PCASTData);

// *****************************************************************************
// Idea
// *****************************************************************************

const
  IDEA_BLOCK_BYTES   = 8;
  IDEA_BLOCK_WORDS   = IDEA_BLOCK_BYTES shr 1;

  IDEA_USERKEY_BYTES = 16;

  IDEA_ROUNDS        =  8;
  IDEA_EXTKEY_WORDS  = (6 * IDEA_ROUNDS + 4);

type
  PIdeaHalfExtKey = ^IdeaHalfExtKey;
  IdeaHalfExtKey  = array[0..IDEA_EXTKEY_WORDS] of Word;

  PIdeaExtendedKey = ^IdeaExtendedKey;
  IdeaExtendedKey  = record
    EKey: IdeaHalfExtKey;  // encoding key
    DKey: IdeaHalfExtKey;  // decoding key
  end;

  PIdeaData = ^IdeaData;
  IdeaData = record
    case Integer of
      0: (B: array[0..IDEA_BLOCK_BYTES-1] of Byte);  // 8 bytes
      1: (W: array[0..IDEA_BLOCK_WORDS-1] of Word);  // 4 words (16 bit)
  end;

  procedure IdeaKeySetup(Key: PByteArray; ExtKey: PIdeaExtendedKey);    // KeySize = 16 !
  procedure IdeaBlockEncrypt(ExtKey: PIdeaExtendedKey; Data: PIdeaData);
  procedure IdeaBlockDecrypt(ExtKey: PIdeaExtendedKey; Data: PIdeaData);


// *****************************************************************************
// Digest algorithms
// *****************************************************************************

type
  TDigestKind = (dkMDX, dkSHA);

// *****************************************************************************
// MDx
// *****************************************************************************

const
  MDX_DIGEST_SIZE = 16;

type
  TDigestMDX = array[0..MDX_DIGEST_SIZE-1] of Byte;
  TMDXVersion = (dgMD2, dgMD4, dgMD5);

  function ExtractDigestMD2(input: Pointer; inputLen: DWord): TDigestMDX;
  function ExtractDigestMD4(input: Pointer; inputLen: DWord): TDigestMDX;
  function ExtractDigestMD5(input: Pointer; inputLen: DWord): TDigestMDX;
  function ExtractDigestMDX(input: Pointer; inputLen: DWord; Version: TMDXVersion): TDigestMDX;

// *****************************************************************************
// SHA1
// *****************************************************************************

const
  SHA_DIGEST_SIZE = 20;

type
  TDigest160 = array[0..SHA_DIGEST_SIZE-1] of Byte;

  function ExtractDigestSHA1(input: Pointer; inputLen: DWord): TDigest160;

// *****************************************************************************
// RIPEMD-160
// *****************************************************************************

// The RIPEMD-160 block size and message digest sizes, in bytes

const
  RIPEMD160_DIGESTSIZE = 20;

  function ExtractDigestRIPEMD160(input: Pointer; inputLen: DWord): TDigest160;


// *****************************************************************************
// Coding algorithms
// *****************************************************************************

// *****************************************************************************
// Base64
// *****************************************************************************

  function Base64EncodedSize(SourceLen: DWord): DWord;
  function Base64Encode(Source: Pointer; SourceLen: DWord; Dest: Pointer; DestSize: DWord; var DestLen: DWord): Boolean;

  function Base64DecodedSize(EncData: Pointer; EncDataLen: DWord; var NumPad: DWord): DWord;
  function Base64Decode(EncData: Pointer; EncDataLen: DWord; Dest: Pointer; DestSize: DWord; var DestLen: DWord): Boolean;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成年人网站在线观看| 麻豆精品视频在线| 免费国产亚洲视频| 99r国产精品| 欧美成人vps| 午夜精品久久一牛影视| 成人精品国产福利| 欧美精品一区二区三区在线| 亚洲国产成人tv| 成人av午夜影院| 久久久国产精华| 久久成人免费日本黄色| 欧美午夜片在线观看| 中文字幕乱码亚洲精品一区| 久久精品国产一区二区| 欧美日韩国产美| 亚洲人成在线观看一区二区| 国产成人精品亚洲日本在线桃色| 欧美一区二区性放荡片| 亚洲亚洲精品在线观看| www.欧美日韩| 国产精品不卡视频| 懂色av中文一区二区三区| 久久综合九色综合欧美就去吻| 日韩av不卡一区二区| 欧美日韩日日摸| 亚洲综合小说图片| 欧美最猛性xxxxx直播| 亚洲免费视频成人| 91小视频在线| 一区二区在线观看av| av激情成人网| 亚洲欧美日韩人成在线播放| 成人av网站大全| 亚洲日本电影在线| 色老头久久综合| 一区二区三区国产豹纹内裤在线| 97久久超碰精品国产| 亚洲美女在线国产| 91电影在线观看| 午夜欧美在线一二页| 欧美日韩国产精品成人| 日韩国产欧美一区二区三区| 日韩一区二区在线观看视频| 午夜电影一区二区三区| 欧美一区二区精品久久911| 久久爱www久久做| 亚洲精品一区二区三区福利| 成人一区二区三区视频| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 亚洲人123区| 91激情在线视频| 日韩中文字幕亚洲一区二区va在线 | 国产精品网站在线| 国产福利不卡视频| 亚洲少妇30p| 欧美一卡2卡3卡4卡| 国产一区二区视频在线播放| 国产精品欧美一级免费| 99re6这里只有精品视频在线观看| 亚洲在线一区二区三区| 91麻豆精品国产91久久久使用方法 | av爱爱亚洲一区| 亚洲国产另类av| 精品久久久久99| 91女神在线视频| 热久久一区二区| 国产精品亲子乱子伦xxxx裸| 欧美日韩一二三区| 国产伦精品一区二区三区免费| 亚洲人成在线观看一区二区| 欧美一区二区在线看| www.激情成人| 美腿丝袜亚洲三区| 亚洲色图欧美激情| 欧美精品一区二区三区很污很色的 | 欧美亚洲一区三区| 国产裸体歌舞团一区二区| 一区二区三区欧美久久| 精品国产精品一区二区夜夜嗨| 色综合久久久久综合体| 奇米综合一区二区三区精品视频| 国产精品视频第一区| 欧美一区二区三区在线电影| 久久美女艺术照精彩视频福利播放 | 欧洲一区在线电影| 国产精品99久久久久久有的能看| 亚洲va在线va天堂| 中文字幕中文乱码欧美一区二区| 日韩免费观看高清完整版| 91免费观看视频在线| 国产精品羞羞答答xxdd| 欧美a级理论片| 亚洲综合在线五月| 国产精品美女www爽爽爽| 日韩欧美视频在线| 欧美美女bb生活片| 日本道免费精品一区二区三区| 国产成人免费视频精品含羞草妖精| 亚洲福利国产精品| 一区二区在线观看av| 日韩伦理电影网| 国产日韩欧美a| 久久香蕉国产线看观看99| 6080国产精品一区二区| 欧美性生交片4| 色婷婷亚洲综合| 色综合欧美在线| 99久久婷婷国产| 欧美韩国一区二区| 久久伊人中文字幕| 欧美tk—视频vk| 欧美白人最猛性xxxxx69交| 欧美久久一二三四区| 欧美精品久久天天躁| 欧美视频完全免费看| 欧美视频自拍偷拍| 欧美天堂一区二区三区| 欧美专区亚洲专区| 欧美性xxxxxxxx| 欧美精品自拍偷拍动漫精品| 欧美麻豆精品久久久久久| 欧美另类一区二区三区| 91精品国产麻豆| 欧美一级在线免费| 欧美r级在线观看| 26uuu亚洲综合色| 国产日韩欧美制服另类| 国产精品久久久久一区| 亚洲欧美一区二区三区孕妇| 亚洲精品欧美激情| 调教+趴+乳夹+国产+精品| 日本不卡高清视频| 欧美成人午夜电影| 国产欧美在线观看一区| 中文字幕日韩欧美一区二区三区| 国产精品美女久久久久久久| 亚洲你懂的在线视频| 婷婷一区二区三区| 国产在线播放一区三区四| 岛国精品在线播放| 91蜜桃视频在线| 欧美一级免费大片| 2021久久国产精品不只是精品| 国产欧美va欧美不卡在线| 亚洲老妇xxxxxx| 日本不卡一区二区三区高清视频| 国模大尺度一区二区三区| 成a人片国产精品| 欧美精品精品一区| 成人性生交大片免费看中文| 91福利视频网站| 精品国产伦一区二区三区观看方式| 欧美激情自拍偷拍| 亚洲成人免费影院| 国产成人综合在线| 欧美人妖巨大在线| 中文字幕不卡在线播放| 午夜精品久久久久久| 成人一区在线看| 日韩视频免费直播| 亚洲激情在线播放| 国内精品视频一区二区三区八戒| av亚洲产国偷v产偷v自拍| 制服.丝袜.亚洲.中文.综合| 国产蜜臀av在线一区二区三区| 亚洲午夜精品在线| 国产精品亚洲第一区在线暖暖韩国| 欧美亚男人的天堂| 丰满少妇久久久久久久| 欧美一区二区三区视频在线观看| 最新久久zyz资源站| 狠狠色2019综合网| 6080yy午夜一二三区久久| 日本女优在线视频一区二区| 91免费观看视频| 国产日韩欧美a| 国产在线乱码一区二区三区| 欧美日本精品一区二区三区| 亚洲日本在线天堂| 福利一区二区在线| 久久免费的精品国产v∧| 免费在线成人网| 欧美人与性动xxxx| 一区二区在线观看视频| 成人18精品视频| 欧美韩国一区二区| 国产成人一级电影| 久久综合久久综合九色| 精品一区二区三区免费视频| 色婷婷av一区二区三区软件| 久久久久99精品国产片| 久久国产精品露脸对白| 日韩视频一区二区三区在线播放| 一区二区三区四区蜜桃| 91色综合久久久久婷婷| 亚洲色图视频免费播放| 91色婷婷久久久久合中文| 91福利视频在线| 亚洲国产精品一区二区尤物区|