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

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

?? md5encodestr.pas

?? FIR引擎最新源碼+注冊
?? PAS
字號:
unit MD5EncodeStr;

interface
uses Windows, SysUtils;
type
  MD5Count = array[0..1] of DWORD;
  MD5State = array[0..3] of DWORD;
  MD5Block = array[0..15] of DWORD;
  MD5CBits = array[0..7] of Byte;
  MD5Digest = array[0..15] of Byte;
  MD5Buffer = array[0..63] of Byte;
  MD5Context = record
    State: MD5State;
    Count: MD5Count;
    Buffer: MD5Buffer;
  end;
function RivestStr(Str: string): string;
function RivestFile(FileName: string): string;
implementation
var
  PADDING: MD5Buffer = (
    $80, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00);
function F(x, y, z: DWORD): DWORD;
begin
  Result := (x and y) or ((not x) and z);
end;

function G(x, y, z: DWORD): DWORD;
begin
  Result := (x and z) or (y and (not z));
end;

function H(x, y, z: DWORD): DWORD;
begin
  Result := x xor y xor z;
end;

function i(x, y, z: DWORD): DWORD;
begin
  Result := y xor (x or (not z));
end;

procedure rot(var x: DWORD; n: Byte);
begin
  x := (x shl n) or (x shr (32 - n));
end;

procedure FF(var a: DWORD; b, c, d, x: DWORD; s: Byte; ac: DWORD);
begin
  Inc(a, F(b, c, d) + x + ac);
  rot(a, s);
  Inc(a, b);
end;

procedure GG(var a: DWORD; b, c, d, x: DWORD; s: Byte; ac: DWORD);
begin
  Inc(a, G(b, c, d) + x + ac);
  rot(a, s);
  Inc(a, b);
end;

procedure HH(var a: DWORD; b, c, d, x: DWORD; s: Byte; ac: DWORD);
begin
  Inc(a, H(b, c, d) + x + ac);
  rot(a, s);
  Inc(a, b);
end;

procedure II(var a: DWORD; b, c, d, x: DWORD; s: Byte; ac: DWORD);
begin
  Inc(a, i(b, c, d) + x + ac);
  rot(a, s);
  Inc(a, b);
end;

procedure Encode(Source, Target: pointer; Count: longword);
var
  s: PByte;
  T: PDWORD;
  i: longword;
begin
  s := Source;
  T := Target;
  for i := 1 to Count div 4 do begin
    T^ := s^;
    Inc(s);
    T^ := T^ or (s^ shl 8);
    Inc(s);
    T^ := T^ or (s^ shl 16);
    Inc(s);
    T^ := T^ or (s^ shl 24);
    Inc(s);
    Inc(T);
  end;
end;

procedure Decode(Source, Target: pointer; Count: longword);
var
  s: PDWORD;
  T: PByte;
  i: longword;
begin
  s := Source;
  T := Target;
  for i := 1 to Count do begin
    T^ := s^ and $FF;
    Inc(T);
    T^ := (s^ shr 8) and $FF;
    Inc(T);
    T^ := (s^ shr 16) and $FF;
    Inc(T);
    T^ := (s^ shr 24) and $FF;
    Inc(T);
    Inc(s);
  end;
end;

procedure Transform(Buffer: pointer; var State: MD5State);
var
  a, b, c, d: DWORD;
  Block: MD5Block;
begin
  Encode(Buffer, @Block, 64);
  a := State[0];
  b := State[1];
  c := State[2];
  d := State[3];
  FF(a, b, c, d, Block[0], 7, $D76AA478);
  FF(d, a, b, c, Block[1], 12, $E8C7B756);
  FF(c, d, a, b, Block[2], 17, $242070DB);
  FF(b, c, d, a, Block[3], 22, $C1BDCEEE);
  FF(a, b, c, d, Block[4], 7, $F57C0FAF);
  FF(d, a, b, c, Block[5], 12, $4787C62A);
  FF(c, d, a, b, Block[6], 17, $A8304613);
  FF(b, c, d, a, Block[7], 22, $FD469501);
  FF(a, b, c, d, Block[8], 7, $698098D8);
  FF(d, a, b, c, Block[9], 12, $8B44F7AF);
  FF(c, d, a, b, Block[10], 17, $FFFF5BB1);
  FF(b, c, d, a, Block[11], 22, $895CD7BE);
  FF(a, b, c, d, Block[12], 7, $6B901122);
  FF(d, a, b, c, Block[13], 12, $FD987193);
  FF(c, d, a, b, Block[14], 17, $A679438E);
  FF(b, c, d, a, Block[15], 22, $49B40821);
  GG(a, b, c, d, Block[1], 5, $F61E2562);
  GG(d, a, b, c, Block[6], 9, $C040B340);
  GG(c, d, a, b, Block[11], 14, $265E5A51);
  GG(b, c, d, a, Block[0], 20, $E9B6C7AA);
  GG(a, b, c, d, Block[5], 5, $D62F105D);
  GG(d, a, b, c, Block[10], 9, $2441453);
  GG(c, d, a, b, Block[15], 14, $D8A1E681);
  GG(b, c, d, a, Block[4], 20, $E7D3FBC8);
  GG(a, b, c, d, Block[9], 5, $21E1CDE6);
  GG(d, a, b, c, Block[14], 9, $C33707D6);
  GG(c, d, a, b, Block[3], 14, $F4D50D87);
  GG(b, c, d, a, Block[8], 20, $455A14ED);
  GG(a, b, c, d, Block[13], 5, $A9E3E905);
  GG(d, a, b, c, Block[2], 9, $FCEFA3F8);
  GG(c, d, a, b, Block[7], 14, $676F02D9);
  GG(b, c, d, a, Block[12], 20, $8D2A4C8A);
  HH(a, b, c, d, Block[5], 4, $FFFA3942);
  HH(d, a, b, c, Block[8], 11, $8771F681);
  HH(c, d, a, b, Block[11], 16, $6D9D6122);
  HH(b, c, d, a, Block[14], 23, $FDE5380C);
  HH(a, b, c, d, Block[1], 4, $A4BEEA44);
  HH(d, a, b, c, Block[4], 11, $4BDECFA9);
  HH(c, d, a, b, Block[7], 16, $F6BB4B60);
  HH(b, c, d, a, Block[10], 23, $BEBFBC70);
  HH(a, b, c, d, Block[13], 4, $289B7EC6);
  HH(d, a, b, c, Block[0], 11, $EAA127FA);
  HH(c, d, a, b, Block[3], 16, $D4EF3085);
  HH(b, c, d, a, Block[6], 23, $4881D05);
  HH(a, b, c, d, Block[9], 4, $D9D4D039);
  HH(d, a, b, c, Block[12], 11, $E6DB99E5);
  HH(c, d, a, b, Block[15], 16, $1FA27CF8);
  HH(b, c, d, a, Block[2], 23, $C4AC5665);
  II(a, b, c, d, Block[0], 6, $F4292244);
  II(d, a, b, c, Block[7], 10, $432AFF97);
  II(c, d, a, b, Block[14], 15, $AB9423A7);
  II(b, c, d, a, Block[5], 21, $FC93A039);
  II(a, b, c, d, Block[12], 6, $655B59C3);
  II(d, a, b, c, Block[3], 10, $8F0CCC92);
  II(c, d, a, b, Block[10], 15, $FFEFF47D);
  II(b, c, d, a, Block[1], 21, $85845DD1);
  II(a, b, c, d, Block[8], 6, $6FA87E4F);
  II(d, a, b, c, Block[15], 10, $FE2CE6E0);
  II(c, d, a, b, Block[6], 15, $A3014314);
  II(b, c, d, a, Block[13], 21, $4E0811A1);
  II(a, b, c, d, Block[4], 6, $F7537E82);
  II(d, a, b, c, Block[11], 10, $BD3AF235);
  II(c, d, a, b, Block[2], 15, $2AD7D2BB);
  II(b, c, d, a, Block[9], 21, $EB86D391);
  Inc(State[0], a);
  Inc(State[1], b);
  Inc(State[2], c);
  Inc(State[3], d);
end;

procedure MD5Init(var Context: MD5Context);
begin
  with Context do begin
    State[0] := $67452301;
    State[1] := $EFCDAB89;
    State[2] := $98BADCFE;
    State[3] := $10325476;
    Count[0] := 0;
    Count[1] := 0;
    ZeroMemory(@Buffer, SizeOf(MD5Buffer));
  end;
end;

procedure MD5Update(var Context: MD5Context; Input: pChar; Length: longword);
var
  index: longword;
  PartLen: longword;
  i: longword;
begin
  with Context do begin
    index := (Count[0] shr 3) and $3F;
    Inc(Count[0], Length shl 3);
    if Count[0] < (Length shl 3) then Inc(Count[1]);
    Inc(Count[1], Length shr 29);
  end;
  PartLen := 64 - index;
  if Length >= PartLen then begin
    CopyMemory(@Context.Buffer[index], Input, PartLen);
    Transform(@Context.Buffer, Context.State);
    i := PartLen;
    while i + 63 < Length do begin
      Transform(@Input[i], Context.State);
      Inc(i, 64);
    end;
    index := 0;
  end else i := 0;
  CopyMemory(@Context.Buffer[index], @Input[i], Length - i);
end;

procedure MD5Final(var Context: MD5Context; var Digest: MD5Digest);
var
  Bits: MD5CBits;
  index: longword;
  PadLen: longword;
begin
  Decode(@Context.Count, @Bits, 2);
  index := (Context.Count[0] shr 3) and $3F;
  if index < 56 then PadLen := 56 - index else PadLen := 120 - index;
  MD5Update(Context, @PADDING, PadLen);
  MD5Update(Context, @Bits, 8);
  Decode(@Context.State, @Digest, 4);
  ZeroMemory(@Context, SizeOf(MD5Context));
end;

function MD5String(M: string): MD5Digest;
var
  Context: MD5Context;
begin
  MD5Init(Context);
  MD5Update(Context, pChar(M), Length(M));
  MD5Final(Context, Result);
end;

function MD5File(n: string): MD5Digest;
var
  FileHandle: THandle;
  MapHandle: THandle;
  ViewPointer: pointer;
  Context: MD5Context;
begin
  MD5Init(Context);
  FileHandle := CreateFile(pChar(n), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
    nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_SEQUENTIAL_SCAN, 0);
  if FileHandle <> INVALID_HANDLE_VALUE then try
    MapHandle := CreateFileMapping(FileHandle, nil, PAGE_READONLY, 0, 0, nil);
    if MapHandle <> 0 then try
      ViewPointer := MapViewOfFile(MapHandle, FILE_MAP_READ, 0, 0, 0);
      if ViewPointer <> nil then try
        MD5Update(Context, ViewPointer, GetFileSize(FileHandle, nil));
      finally
        UnmapViewOfFile(ViewPointer);
      end;
    finally
      CloseHandle(MapHandle);
    end;
  finally
    CloseHandle(FileHandle);
  end;
  MD5Final(Context, Result);
end;

function MD5Print(d: MD5Digest): string;
var
  i: Byte;
const
  Digits: array[0..15] of char =
  ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
begin
  Result := '';
  for i := 0 to 15 do Result := Result + Digits[(d[i] shr 4) and $0F] + Digits[d[i] and $0F];
end;

function MD5Match(D1, D2: MD5Digest): Boolean;
var
  i: Byte;
begin
  i := 0;
  Result := True;
  while Result and (i < 16) do begin
    Result := D1[i] = D2[i];
    Inc(i);
  end;
end;

function RivestStr(Str: string): string;
begin
  Result := UpperCase(MD5Print(MD5String(Str)));
end;

function RivestFile(FileName: string): string;
begin
  Result := MD5Print(MD5File(FileName));
end;
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品中文字幕在线不卡尤物| 国产精品色在线| 国产日韩v精品一区二区| 中文字幕一区在线观看视频| 轻轻草成人在线| 91亚洲精华国产精华精华液| 欧美电视剧在线看免费| 亚洲激情图片qvod| 成人app网站| 精品国产一区二区三区忘忧草 | 激情综合网av| 91精彩视频在线观看| 欧美国产精品专区| 青椒成人免费视频| 一本大道av伊人久久综合| 精品国产乱码久久久久久图片| 一区二区三区四区在线免费观看| 国产美女主播视频一区| 91精品婷婷国产综合久久性色| 亚洲人被黑人高潮完整版| 国产xxx精品视频大全| 精品国产一区二区精华| 人人精品人人爱| 在线不卡一区二区| 五月激情综合色| 91久久久免费一区二区| 亚洲视频一区二区在线| 91麻豆国产香蕉久久精品| 国产欧美精品国产国产专区| 国产乱码精品一区二区三区忘忧草 | 日韩一二三区不卡| 秋霞电影网一区二区| 欧美精品xxxxbbbb| 天天色综合天天| 欧美一区二区三区人| 日韩va亚洲va欧美va久久| 欧美肥妇bbw| 蜜臀av性久久久久av蜜臀妖精| 在线成人高清不卡| 日韩精品视频网| 欧美刺激午夜性久久久久久久| 三级亚洲高清视频| 欧美一区二区性放荡片| 久久精品国产精品亚洲综合| 精品捆绑美女sm三区| 国产又黄又大久久| 国产精品美女久久久久aⅴ | 99精品欧美一区二区蜜桃免费 | 岛国一区二区在线观看| 国产精品久久久久7777按摩| av亚洲精华国产精华精华| 亚洲欧美色图小说| 欧美精品视频www在线观看| 美女任你摸久久| 亚洲国产精品成人综合色在线婷婷 | 一本大道av伊人久久综合| 亚洲另类在线制服丝袜| 欧美精品精品一区| 国产在线视频一区二区三区| 中文字幕日本不卡| 欧美日本高清视频在线观看| 精品综合免费视频观看| 国产精品久久久久久久久久久免费看| av高清久久久| 人人狠狠综合久久亚洲| 国产精品三级视频| 欧美精品一卡两卡| 成人深夜在线观看| 日韩av不卡在线观看| 欧美激情一区二区在线| 欧美日韩一区不卡| 国产高清视频一区| 日本成人在线网站| 欧美经典一区二区| 欧美妇女性影城| 不卡av电影在线播放| 日本视频一区二区三区| 成人免费在线观看入口| 日韩视频一区二区| 色婷婷国产精品久久包臀| 久久99久久99精品免视看婷婷 | 成人av网站大全| 日本不卡在线视频| 综合久久国产九一剧情麻豆| 欧美一区二区在线不卡| 91色九色蝌蚪| 国产精品主播直播| 日韩av电影免费观看高清完整版在线观看| 国产日韩成人精品| 欧美mv和日韩mv国产网站| 在线一区二区三区四区五区| 国产精品一区三区| 麻豆精品久久精品色综合| 亚洲一区二区三区不卡国产欧美| 欧美激情一区二区三区| 337p粉嫩大胆噜噜噜噜噜91av| 在线观看91视频| 91蝌蚪porny九色| 国产白丝精品91爽爽久久| 麻豆一区二区在线| 日本三级韩国三级欧美三级| 夜夜嗨av一区二区三区| 亚洲同性同志一二三专区| 国产日本欧美一区二区| 精品国精品国产| 日韩一级二级三级精品视频| 精品视频免费看| 一本久道中文字幕精品亚洲嫩| 国产一本一道久久香蕉| 精品在线播放免费| 久久精品噜噜噜成人av农村| 日韩极品在线观看| 亚洲国产一二三| 亚洲国产成人精品视频| 一区二区三区四区五区视频在线观看| 国产精品私人自拍| 中文字幕一区二区三区精华液| 国产欧美久久久精品影院| 欧美国产亚洲另类动漫| 国产日产欧美一区二区视频| 久久久久久久综合日本| 久久久99久久| 中文字幕免费观看一区| 亚洲欧洲性图库| 亚洲六月丁香色婷婷综合久久 | 成人黄色网址在线观看| 成人av高清在线| 99re8在线精品视频免费播放| 9久草视频在线视频精品| 精品入口麻豆88视频| 亚洲精品一区二区三区99| 国产欧美日韩不卡免费| 一区二区中文视频| 亚洲国产精品影院| 精品亚洲成av人在线观看| 国产电影精品久久禁18| 99re66热这里只有精品3直播| 在线中文字幕一区| 91精品国产综合久久福利| 久久亚洲一区二区三区四区| 欧美激情中文字幕一区二区| 亚洲激情六月丁香| 日产国产欧美视频一区精品| 国产在线视视频有精品| aaa国产一区| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品一区二区三区乱码| 成人福利视频在线| 欧美精品自拍偷拍| 久久久精品国产免大香伊| 亚洲色图清纯唯美| 另类小说视频一区二区| 北岛玲一区二区三区四区| 欧美日韩高清一区二区| 欧美va亚洲va在线观看蝴蝶网| 日本一区二区三区免费乱视频| 一区二区视频在线| 国产一区二区视频在线播放| 91丨九色丨黑人外教| 日韩女同互慰一区二区| 日韩美女啊v在线免费观看| 日本不卡在线视频| 97se狠狠狠综合亚洲狠狠| 日韩精品专区在线影院观看| 亚洲日本中文字幕区| 九九在线精品视频| 欧美日韩视频专区在线播放| 国产精品视频一二三区| 日韩精品欧美成人高清一区二区| 波多野结衣中文字幕一区 | 国产午夜精品福利| 天堂久久久久va久久久久| gogo大胆日本视频一区| 精品久久国产字幕高潮| 亚洲成人综合网站| 懂色av一区二区夜夜嗨| 一区在线播放视频| 国产一区二区0| 欧美一个色资源| 午夜精品久久久久久久| 91免费观看视频在线| 中文一区在线播放| 激情深爱一区二区| 日韩你懂的在线播放| 视频一区欧美日韩| 欧美三级电影网| 一级女性全黄久久生活片免费| www.欧美精品一二区| 国产日韩精品一区二区三区在线| 久久激情五月激情| 69p69国产精品| 亚洲18女电影在线观看| 欧美综合一区二区| 一区二区三区美女视频| 91女人视频在线观看| 国产精品久久久久久久久免费相片 | 欧美日韩一区高清| 亚洲精品一二三| 99re8在线精品视频免费播放| 国产欧美一区二区三区在线看蜜臀 |