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

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

?? encryption.pas

?? 供水營銷打印程序源碼
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
  if ctx.lenlo < (len shl 3)
    then inc(ctx.lenhi);
  inc(ctx.lenhi, len shr 29);
end;

procedure HavalFlush(ctx: THaval_CTX);
begin
  ctx.lenhi := 0;
  ctx.lenlo := 0;
  ctx.index := 0;
  fillchar(ctx.hashbuffer, sizeof(ctx.hashbuffer), 0);
  fillchar(ctx.hash, sizeof(ctx.hash), 0);
end;

procedure HavalInit(ctx: THaval_CTX);
begin
  HavalFlush(ctx);
  ctx.hash[0] := $243F6A88;
  ctx.hash[1] := $85A308D3;
  ctx.hash[2] := $13198A2E;
  ctx.hash[3] := $03707344;
  ctx.hash[4] := $A4093822;
  ctx.hash[5] := $299F31D0;
  ctx.hash[6] := $082EFA98;
  ctx.hash[7] := $EC4E6C89;
end;

procedure HavalUpdate(ctx: THaval_CTX; const Buffer; Size: longint);
var
  p: ^byte;
begin
  HavalUpdateLen(ctx, size);
  p := @buffer;
  while size > 0 do
  begin
    if(sizeof(ctx.hashbuffer) - ctx.index) <= Longword(size) then
    begin
      move(p^, ctx.hashbuffer[ctx.index], sizeof(ctx.hashbuffer)-ctx.index);
      dec(size, sizeof(ctx.hashbuffer) - ctx.index);
      inc(p, sizeof(ctx.hashbuffer) - ctx.index);
      HavalCompress(ctx);
    end else
    begin
      move(p^, ctx.hashbuffer[ctx.index], size);
      inc(ctx.index, size);
      size := 0;
    end;
  end;
end;

procedure HavalFinal(ctx: THaval_CTX; var digest);
begin
  ctx.hashbuffer[ctx.index] := $80;
  if ctx.index>118 then
    HavalCompress(ctx);
  ctx.hashbuffer[118] := ((HASH_SIZE and 3) shl 6) or (5 shl 3) or 1;
  ctx.hashbuffer[119] := (HASH_SIZE shr 2) and $FF;
  move(ctx.lenlo, ctx.hashbuffer[120], sizeof(ctx.lenlo));
  move(ctx.lenhi, ctx.hashbuffer[124], sizeof(ctx.lenhi));
  HavalCompress(ctx);
  move(ctx.hash,digest, HASH_SIZE div 8);
  HavalFlush(ctx);
end;

//****************************************************************************
//                         PRNG
//****************************************************************************

procedure PrngInit(ctx: TPrng_CTX; seed: Longword);
var
  i: byte;
begin
  ctx.x1 := (seed+PrngC1) mod PrngM1;
  ctx.x1 := (ctx.x1 * PrngI1 + PrngC1) mod PrngM1;
  ctx.x2 := ctx.x1 mod PrngM2;
  ctx.x1 := (ctx.x1 * PrngI1 + PrngC1) mod PrngM1;
  ctx.x3 := ctx.x1 mod PrngM3;
  for i := 1 to 97 do
  begin
    ctx.x1 := (ctx.x1 * PrngI1 + PrngC1) mod PrngM1;
    ctx.x2 := (ctx.x2 * PrngI2 + PrngC2) mod PrngM2;
    ctx.r[i] := (ctx.x1 + ctx.x2 / PrngM2) / PrngM1;
 end;
end;

function Prng(ctx: TPrng_CTX): Longword;
var
  i: Longword;
begin
  ctx.x1 := (ctx.x1 * PrngI1 + PrngC1) mod PrngM1;
  ctx.x2 := (ctx.x2 * PrngI2 + PrngC2) mod PrngM2;
  ctx.x3 := (ctx.x3 * PrngI3 + PrngC3) mod PrngM3;
  i := 1 + (97 * ctx.x3) div PrngM3;
  Prng := trunc($FFFFFFFF * ctx.r[i]);
  ctx.r[i] := (ctx.x1 + ctx.x2 / PrngM2) / PrngM1;
end;

procedure PrngFlush(ctx: TPrng_CTX);
var
  i: byte;
begin
  ctx.x1 := 0;
  ctx.x2 := 0;
  ctx.x3 := 0;
  for i:=1 to 97 do ctx.r[i] := 0;
end;

//****************************************************************************
//                         Key Routines
//****************************************************************************

procedure MutateKey(var key: key256);
var
  i: byte;
  exp_key: array[0..1, 0..7] of Longword;
  ran_ctx: Prng_CTX;
  hash_ctx: Haval_CTX;
  temp_key: key256;
begin
  // [1]feed key as 8 seeds into PRNG to generate 16 longs
  for i := 0 to 7 do
  begin
    PrngInit(@ran_ctx,key[i]); //use key as seed data
    exp_key[0,i]:=Prng(@ran_ctx); //expand key
    exp_key[1,i]:=not Prng(@ran_ctx); //negate to reduce PRNG relationship
  end;

  // [2]feed [1] as 64 bytes into Haval
  for i := 0 to 7 do temp_key[i] := key[i];

  HavalInit(@hash_ctx);
  HavalUpdate(@hash_ctx, exp_key[0][0], 64); // feed expanded key as data
  HavalFinal(@hash_ctx, key);

  // [3]xor(^) [2] and [1] to produce the final key
   for i := 0 to 7 do key[i] := key[i] xor temp_key[i]; //reduce HASH relationship
end;

function PasswordToKey(pass: string): Key256;
var
  i,j: Integer;
  temp_chars: array[0..42] of byte;
  key_size: byte;
  temp_key: array[0..31] of byte;
  temp_pos: byte;
  bit_pos: byte;
begin
  // [1]convert 8bit Chars to 6bit bytes
  for i := 1 to length(pass)do
    case byte(pass[i]) of
      97..122 : temp_chars[i] := byte(pass[i])-97; // if a..z assign 0-25
      65..90 : temp_chars[i] := byte(pass[i])-39; // if A..Z assign 26-51
      48..57 : temp_chars[i] := byte(pass[i])+4; // if 0..9 assign 52-61
      byte('.') : temp_chars[i] := 62; // if . assign 62
      byte('_') : temp_chars[i] := 63; // if _ assign 63
    end;

  key_size := (length(pass) * 6) div 8; // Keysize with 6bit chars

  // [2]append 6bit Chars to each other
  temp_pos := 0; // temp buffer position
  bit_pos := 0; // bit position

  for i := 0 to key_size - 1 do //concatonate 6bit chars together
  begin
    temp_key[i]:=0;
    for j:=0 to 7 do
    begin
      inc(temp_key[i],
         ((temp_chars[temp_pos] and BIT_MASK[bit_pos]) shr bit_pos) shl j);
      inc(bit_pos,1);
      if bit_pos=6 then
      begin
        bit_pos := 0;
        inc(temp_pos,1);
      end;
    end;
  end;

  // [3]make full 256bit key
  // [EDITED 04/25/01] Sorry about the bug. This was originaly done to the
  //pass phrase, but I moved it to the process the key instead and forgot to
  //adjust the length from 43 to 32 bytes.  Just change the lines of step [3].
  //Again, sorry.

  if key_size < 32 then
  begin
    j := 0;
    for i := key_size - 1 to 31 do  //fill in empty bytes
    begin
      temp_key[i] := temp_key[j]xor i;
      inc(j,1);
    end;
  end;

  // [4]eliminate english language redundancy
  MutateKey(key256(temp_key));
  PasswordToKey := key256(temp_key);
end;

function AnalyzePassword(pass: string): KeyStatistics;
var
  i, j: Longword;
  key: array[0..1023] of byte;
  chars: array[0..255] of byte;
  pat_pos, pat_len: Longword;
  ones, zeros: Longword;
  stat: KeyStatistics;
begin
  // [1]count keylenght
  stat.KeyLength := length(pass);

  // [2]copy key to buffer
  for i := 0 to stat.KeyLength - 1 do key[i] := byte(pass[i]);

  // [3]count char repetition
  for i := 0 to 255 do chars[i] := 0;
  for i := 0 to stat.KeyLength - 1 do inc(chars[key[i]], 1);

  // [4]count different characters
  stat.CharCount := 0;
  for i := 0 to 255 do
    if chars[i] <> 0 then
      inc(stat.CharCount, 1);

  // [5]count charbits
   stat.CharBits := 0;
   for i := 0 to 7 do
     if stat.CharCount > BIT_MASK[i] then
       inc(stat.CharBits, 1);

  // [6]count patterns
  pat_pos := 0;
  pat_len := 0;
  repeat
    i := pat_pos;
    repeat
      if (key[i] = key[pat_pos]) and (i <> pat_pos) then // if match is found
        repeat
          inc(pat_len, 1); // increment pattern size
          inc(i, 1); // move to next char
          inc(pat_pos, 1); // next char in pattern
        until (key[i] <> key[pat_pos]) or (i = stat.KeyLength); //until pattern ends
         inc(i,1);
      until (i > stat.KeyLength - 1); // until finished searching for this pattern
      inc(pat_pos, 1); // start new pattern with the next char
  until pat_pos > stat.KeyLength; // until all patterns have been searched

  if pat_len=0 then
    stat.Patterns := 0
  else stat.Patterns := (pat_len * 100) div stat.KeyLength;

  // [7]count bit-differential
  ones := 0;
  zeros := 0;
  for i := 0 to stat.KeyLength - 1 do
    for j := 0 to 7 do
      if (key[i] and BIT_MASK[j]) = 0 then
        inc(zeros, 1)
      else
        inc(ones, 1);

  stat.Differential := (Longword(abs(ones-zeros)) * 100) div (stat.KeyLength * 8);

  // [8]count brutelength
  stat.BruteLength := stat.CharBits * stat.KeyLength;

  // [9]count keysize
  stat.KeySize := stat.KeyLength * 8;

  // [10]count rating  :=  BL - ((((pat+dif) /2) /100) *BL)
  stat.Rating := stat.BruteLength -
      ((((stat.Patterns + stat.Differential) div 2) * stat.BruteLength) div 100);

  AnalyzePassword := stat;
end;

function  SimpleEnDecrypt(const Password, Key: string): string;
var
  I,Q : Integer;
  O   : string[255];
begin
  Q := 1;
  O := '';
  for I := 1 to Length(Password) do
  begin
    O := O + Chr(Ord(Password[I]) xor Ord(Key[Q]));
    Inc(Q);
    if Q > Length(Key) then Q := 1;
  end;
  Result := O;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久亚洲高清| 欧美精品色综合| 在线视频国内自拍亚洲视频| 国产日韩影视精品| 免费的国产精品| 欧美日韩精品免费观看视频| 樱花影视一区二区| 99久久99久久精品国产片果冻 | 日韩精品一区二区三区在线观看| 日韩三区在线观看| 免费在线一区观看| 国产精品白丝在线| 国产一区二区三区免费| 国产麻豆精品在线| 久久久亚洲综合| 国产精品白丝jk黑袜喷水| 91精品国产综合久久久蜜臀粉嫩| 99久久久精品| 99在线视频精品| 成人av免费在线播放| 国产精品夜夜爽| 久久精品理论片| 婷婷中文字幕综合| 亚洲精品视频免费看| 亚洲六月丁香色婷婷综合久久| 国产亚洲一区字幕| 国产精品三级电影| 国产精品毛片无遮挡高清| 亚洲国产岛国毛片在线| 国产日韩精品一区| 久久亚洲私人国产精品va媚药| 久久综合网色—综合色88| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品主播直播| 韩国女主播一区| 成人性生交大片免费看在线播放| 国产精品一区二区久久精品爱涩 | 亚洲福中文字幕伊人影院| 综合分类小说区另类春色亚洲小说欧美| 中文av一区特黄| 亚洲国产一区在线观看| 免费观看30秒视频久久| 国产精品亚洲а∨天堂免在线| 成人在线综合网站| 欧美日韩视频在线观看一区二区三区| 成人性视频网站| 欧美综合亚洲图片综合区| 日韩欧美综合一区| 国产精品久久久久久亚洲毛片 | 天天亚洲美女在线视频| 国产一区美女在线| 欧美色图免费看| 国产丝袜美腿一区二区三区| 亚洲影视资源网| 国产成人av资源| 欧美一区二区三区视频在线观看 | 日韩亚洲欧美在线| 国产精品麻豆视频| 美女性感视频久久| 欧美日韩综合色| 国产精品毛片高清在线完整版| 奇米一区二区三区av| 色偷偷一区二区三区| 国产偷国产偷精品高清尤物| 天天操天天综合网| 欧美综合一区二区| 亚洲欧美精品午睡沙发| 成人av午夜影院| 国产日本亚洲高清| 国产成人免费视频一区| 26uuu精品一区二区| 精品一二线国产| 制服丝袜在线91| 日韩有码一区二区三区| 欧美日韩国产一二三| 午夜亚洲国产au精品一区二区| 一本色道亚洲精品aⅴ| 中文字幕一区二区三区蜜月 | 亚洲美女屁股眼交| 91一区一区三区| 亚洲色图在线播放| 日本电影欧美片| 亚洲国产精品一区二区久久| 在线视频亚洲一区| 日韩成人精品在线| 欧美精品一区二区三区高清aⅴ| 亚洲一区二区不卡免费| 欧美日韩精品欧美日韩精品| 日韩黄色免费电影| 亚洲精品一线二线三线| 国产成人av福利| 亚洲精品日日夜夜| 精品国产污污免费网站入口| 国产成人午夜精品5599| 国产精品成人免费在线| 欧美最猛性xxxxx直播| 激情成人综合网| 一区二区三区美女| 精品国产不卡一区二区三区| 91麻豆视频网站| 九色综合狠狠综合久久| 中文字幕一区视频| 色婷婷亚洲综合| 九九九久久久精品| 亚洲制服欧美中文字幕中文字幕| 精品欧美乱码久久久久久1区2区| www.日韩大片| 国产成人免费网站| 另类综合日韩欧美亚洲| 亚洲视频在线观看一区| 久久亚洲免费视频| 日韩一区二区三区精品视频| 99re视频精品| 成人一区二区在线观看| 麻豆国产欧美日韩综合精品二区| 亚洲另类在线视频| 日本一区二区三区国色天香 | 国产永久精品大片wwwapp| 亚洲大片精品永久免费| 亚洲欧美韩国综合色| 国产精品毛片大码女人| 久久久国产午夜精品| 国产亚洲福利社区一区| 久久久综合视频| 欧美精品一区二区三区蜜桃| 日韩久久久精品| 欧美va日韩va| 国产欧美久久久精品影院| 国产色产综合色产在线视频| 久久久国产精华| 国产精品国模大尺度视频| 欧美国产一区在线| 亚洲欧美日韩久久| 椎名由奈av一区二区三区| 日韩美女啊v在线免费观看| 国产精品久久777777| 亚洲精品一卡二卡| 亚洲高清免费视频| 久久精品国产亚洲a| 狠狠色综合色综合网络| 不卡一二三区首页| 欧美色视频在线| 精品999在线播放| 国产精品水嫩水嫩| 一区二区三区四区蜜桃| 亚洲一区av在线| 狠狠色丁香久久婷婷综合丁香| 国产精品一区在线观看你懂的| 高清成人免费视频| 欧美在线视频你懂得| 久久精品欧美一区二区三区麻豆| 日本一区二区视频在线观看| 亚洲第一成人在线| 波多野结衣中文字幕一区二区三区| 在线一区二区三区四区| 久久精品视频一区二区三区| 亚洲国产va精品久久久不卡综合| 精品一二三四区| 欧美精品乱码久久久久久按摩 | 欧美女孩性生活视频| 久久精品一区二区三区av| 亚洲国产精品久久一线不卡| 国产成人av影院| 久久久亚洲国产美女国产盗摄| 亚洲国产日产av| 色婷婷香蕉在线一区二区| 国产精品美女久久久久久久久| 亚洲成人精品在线观看| 成人18视频日本| 久久午夜羞羞影院免费观看| 亚洲福利一区二区三区| 91国在线观看| 亚洲欧美福利一区二区| 成人精品视频一区| 国产精品激情偷乱一区二区∴| 国产一区二区主播在线| 日韩欧美国产午夜精品| 亚洲18影院在线观看| 欧美色手机在线观看| 亚洲第一会所有码转帖| 欧美日韩中文国产| 日韩精品一区第一页| 欧美一区二区三区白人| 日韩黄色免费网站| 精品区一区二区| 激情综合色综合久久| 欧美日韩成人综合天天影院 | 91丨porny丨蝌蚪视频| 国产精品福利一区二区| 在线免费观看不卡av| 日韩影视精彩在线| 国产免费久久精品| 91激情在线视频| 狠狠色狠狠色综合| 中文字幕不卡在线播放| 欧美性大战xxxxx久久久| 青青草97国产精品免费观看 | 色婷婷精品大在线视频| 亚洲国产精品麻豆| 久久麻豆一区二区|