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

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

?? fgint.pas

?? RSA動態庫文件
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
  i, len8: longint;
  g: char;
begin
  str256 := '';
  while (Length(str2) mod 8) <> 0 do
    str2 := '0' + str2;
  len8 := Length(str2) div 8;
  for i := 1 to len8 do
  begin
    zeronetochar8(g, copy(str2, 1, 8));
    str256 := str256 + g;
    delete(str2, 1, 8);
  end;
end;


procedure ConvertBase2to64(str2: string; var str64: string);
var
  i, len6: longint;
  g: integer;
begin
  str64 := '';
  while (Length(str2) mod 6) <> 0 do
    str2 := '0' + str2;
  len6 := Length(str2) div 6;
  for i := 1 to len6 do
  begin
    zeronetochar6(g, copy(str2, 1, 6));
    str64 := str64 + chr64[g];
    delete(str2, 1, 6);
  end;
end;


// Convert base 256 strings to base 16 (HexaDecimal) strings and visa versa

procedure ConvertBase256StringToHexString(str256: string; var HexStr: string);
var
  i: longint;
  b: byte;
begin
  HexStr := '';
  for i := 1 to Length(str256) do
  begin
    b := ord(str256[i]);
    if (b shr 4) < 10 then
      HexStr := HexStr + chr(48 + (b shr 4))
    else
      HexStr := HexStr + chr(55 + (b shr 4));
    if (b and 15) < 10 then
      HexStr := HexStr + chr(48 + (b and 15))
    else
      HexStr := HexStr + chr(55 + (b and 15));
  end;
end;


procedure ConvertHexStringToBase256String(HexStr: string; var str256: string);
var
  i: longint;
  b, h1, h2: byte;
begin
  str256 := '';
  for i := 1 to (Length(HexStr) div 2) do
  begin
    h2 := ord(HexStr[2 * i]);
    h1 := ord(HexStr[2 * i - 1]);
    if h1 < 58 then
      b := ((h1 - 48) shl 4)
    else
      b := ((h1 - 55) shl 4);
    if h2 < 58 then
      b := (b or (h2 - 48))
    else
      b := (b or (h2 - 55));
    str256 := str256 + chr(b);
  end;
end;


// Convert base 256 strings to base 64 strings and visa versa, PGP style

procedure PGPConvertBase256to64(var str256, str64: string);
var
  temp, x, a: string;
  i, len6: longint;
  g: integer;
  trans: array[0..255] of string;
begin
  initialize8(trans);
  temp := '';
  for i := 1 to Length(str256) do
    temp := temp + trans[ord(str256[i])];
  if (Length(temp) mod 6) = 0 then
    a := ''
  else if (Length(temp) mod 6) = 4 then
  begin
    temp := temp + '00';
    a := '='
  end
  else
  begin
    temp := temp + '0000';
    a := '=='
  end;
  str64 := '';
  len6 := Length(temp) div 6;
  for i := 1 to len6 do
  begin
    x := copy(temp, 1, 6);
    zeronetochar6(g, x);
    str64 := str64 + PGPchr64[g];
    delete(temp, 1, 6);
  end;
  str64 := str64 + a;
end;


procedure PGPConvertBase64to256(str64: string; var str256: string);
var
  temp, x: string;
  i, j, len8: longint;
  g: char;
  trans: array[0..255] of string;
begin
  initialize6PGP(trans);
  temp := '';
  str256 := '';
  if str64[Length(str64) - 1] = '=' then
    j := 2
  else if str64[Length(str64)] = '=' then
    j := 1
  else
    j := 0;
  for i := 1 to (Length(str64) - j) do
    temp := temp + trans[ord(str64[i])];
  if j <> 0 then delete(temp, Length(temp) - 2 * j + 1, 2 * j);
  len8 := Length(temp) div 8;
  for i := 1 to len8 do
  begin
    x := copy(temp, 1, 8);
    zeronetochar8(g, x);
    str256 := str256 + g;
    delete(temp, 1, 8);
  end;
end;

// Convert base 64 strings to base 2 strings, PGP style


procedure PGPConvertBase64to2(str64: string; var str2: string);
var
  i, j: longint;
  trans: array[0..255] of string;
begin
  str2 := '';
  initialize6(trans);
  if str64[Length(str64) - 1] = '=' then
    j := 2
  else if str64[Length(str64)] = '=' then
    j := 1
  else
    j := 0;
  for i := 1 to (Length(str64) - j) do
    str2 := str2 + trans[ord(str64[i])];
  delete(str2, Length(str2) - 2 * j + 1, 2 * j);
end;


// Convert a base 10 string to a FGInt

procedure Base10StringToFGInt(Base10: string; var FGInt: TFGInt);
var
  i, size: longint;
  j: int64;
  s: string;
  Sign: TSign;

  procedure GIntDivByIntBis1(var GInt: TFGInt; by: int64; var modres: int64);
  var
    i, size: longint;
    rest: int64;
  begin
    size := GInt.Number[0];
    modres := 0;
    for i := size downto 1 do
    begin
      modres := modres * 1000000000;
      rest := modres + GInt.Number[i];
      GInt.Number[i] := rest div by;
      modres := rest mod by;
    end;
    while (GInt.Number[size] = 0) and (size > 1) do
      size := size - 1;
    if size <> GInt.Number[0] then
    begin
      SetLength(GInt.Number, size + 1);
      GInt.Number[0] := size;
    end;
  end;

begin
  while (not (Base10[1] in ['-', '0'..'9'])) and (Length(Base10) > 1) do
    delete(Base10, 1, 1);
  if copy(Base10, 1, 1) = '-' then
  begin
    Sign := negative;
    delete(Base10, 1, 1);
  end
  else
    Sign := positive;
  while (Length(Base10) > 1) and (copy(Base10, 1, 1) = '0') do
    delete(Base10, 1, 1);
  size := Length(Base10) div 9;
  if (Length(Base10) mod 9) <> 0 then size := size + 1;
  SetLength(FGInt.Number, size + 1);
  FGInt.Number[0] := size;
  for i := 1 to size - 1 do
  begin
    FGInt.Number[i] := StrToInt(copy(Base10, Length(Base10) - 8, 9));
    delete(Base10, Length(Base10) - 8, 9);
  end;
  FGInt.Number[size] := StrToInt(Base10);

  s := '';
  while (FGInt.Number[0] <> 1) or (FGInt.Number[1] <> 0) do
  begin
    GIntDivByIntBis1(FGInt, 2, j);
    s := inttostr(j) + s;
  end;
  s := '0' + s;
  FGIntDestroy(FGInt);
  Base2StringToFGInt(s, FGInt);
  FGInt.Sign := Sign;
end;


// Convert a FGInt to a base 10 string

procedure FGIntToBase10String(const FGInt: TFGInt; var Base10: string);
var
  s: string;
  j: int64;
  temp: TFGInt;
begin
  FGIntCopy(FGInt, temp);
  Base10 := '';
  while (temp.Number[0] > 1) or (temp.Number[1] > 0) do
  begin
    FGIntDivByIntBis(temp, 1000000000, j);
    s := inttostr(j);
    while Length(s) < 9 do
      s := '0' + s;
    Base10 := s + Base10;
  end;
  Base10 := '0' + Base10;
  while (Length(Base10) > 1) and (Base10[1] = '0') do
    delete(Base10, 1, 1);
  if FGInt.Sign = negative then Base10 := '-' + Base10;
end;



// Destroy a FGInt to free memory

procedure FGIntDestroy(var FGInt: TFGInt);
begin
  FGInt.Number := nil;
end;


// Compare 2 FGInts in absolute value, returns
// Lt if FGInt1 > FGInt2, St if FGInt1 < FGInt2, Eq if FGInt1 = FGInt2,
// Er otherwise

function FGIntCompareAbs(const FGInt1, FGInt2: TFGInt): TCompare;
var
  size1, size2, i: longint;
begin
  FGIntCompareAbs := Er;
  size1 := FGInt1.Number[0];
  size2 := FGInt2.Number[0];
  if size1 > size2 then
    FGIntCompareAbs := Lt
  else if size1 < size2 then
    FGIntCompareAbs := St
  else
  begin
    i := size2;
    while (FGInt1.Number[i] = FGInt2.Number[i]) and (i > 1) do
      i := i - 1;
    if FGInt1.Number[i] = FGInt2.Number[i] then
      FGIntCompareAbs := Eq
    else if FGInt1.Number[i] < FGInt2.Number[i] then
      FGIntCompareAbs := St
    else if FGInt1.Number[i] > FGInt2.Number[i] then
      FGIntCompareAbs := Lt;
  end;
end;


// Add 2 FGInts, FGInt1 + FGInt2 = Sum

procedure FGIntadd(const FGInt1, FGInt2: TFGInt; var Sum: TFGInt);
var
  i, size1, size2, size: longint;
  rest: integer;
  Trest: int64;
begin
  size1 := FGInt1.Number[0];
  size2 := FGInt2.Number[0];
  if size1 < size2 then
    FGIntadd(FGInt2, FGInt1, Sum)
  else
  begin
    if FGInt1.Sign = FGInt2.Sign then
    begin
      Sum.Sign := FGInt1.Sign;
      SetLength(Sum.Number, size1 + 2);
      rest := 0;
      for i := 1 to size2 do
      begin
        Trest := FGInt1.Number[i] + FGInt2.Number[i] + rest;
        Sum.Number[i] := Trest and 2147483647;
        rest := Trest shr 31;
      end;
      for i := (size2 + 1) to size1 do
      begin
        Trest := FGInt1.Number[i] + rest;
        Sum.Number[i] := Trest and 2147483647;
        rest := Trest shr 31;
      end;
      size := size1 + 1;
      Sum.Number[0] := size;
      Sum.Number[size] := rest;
      while (Sum.Number[size] = 0) and (size > 1) do
        size := size - 1;
      if Sum.Number[0] > size then SetLength(Sum.Number, size + 1);
      Sum.Number[0] := size;
    end
    else
    begin
      if FGIntCompareAbs(FGInt2, FGInt1) = Lt then
        FGIntadd(FGInt2, FGInt1, Sum)
      else
      begin
        SetLength(Sum.Number, size1 + 1);
        rest := 0;
        for i := 1 to size2 do
        begin
          Trest := 2147483648 + FGInt1.Number[i] - FGInt2.Number[i] + rest;
          Sum.Number[i] := Trest and 2147483647;
          if (Trest > 2147483647) then
            rest := 0
          else
            rest := -1;
        end;
        for i := (size2 + 1) to size1 do
        begin
          Trest := 2147483648 + FGInt1.Number[i] + rest;
          Sum.Number[i] := Trest and 2147483647;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产高清精品在线| 亚洲国产视频a| 成人欧美一区二区三区视频网页| 亚洲色图清纯唯美| 亚洲成人午夜影院| 国产美女精品一区二区三区| 99精品黄色片免费大全| 欧美一区二区播放| 久久综合一区二区| 亚洲一区在线看| 国产精品夜夜嗨| 色婷婷一区二区| 3d成人h动漫网站入口| 亚洲欧洲一区二区在线播放| 日本不卡一区二区三区高清视频| 奇米影视一区二区三区小说| 狠狠网亚洲精品| 欧美日韩一区久久| 国产精品天美传媒| 久久爱www久久做| 欧美日韩国产小视频| 欧美高清在线一区二区| 男女性色大片免费观看一区二区 | 色成年激情久久综合| 日韩精品一区二区三区中文不卡 | 国产婷婷一区二区| 中文在线一区二区| 国产综合久久久久久久久久久久| 91福利小视频| 亚洲欧美日韩精品久久久久| 99久久久久久| 国产午夜亚洲精品午夜鲁丝片| 日韩国产在线一| 欧美日韩一区三区四区| 国产精品成人网| 国产一区二区三区在线观看精品| 91精品国产91久久综合桃花| 亚洲无线码一区二区三区| 91在线看国产| 日韩欧美第一区| 美女视频第一区二区三区免费观看网站| 欧美日韩一区二区三区视频| 亚洲精品免费看| 色www精品视频在线观看| 国产精品免费人成网站| 成人黄色片在线观看| 欧美国产一区二区在线观看| 日韩精品一二三区| 欧美一级专区免费大片| 另类欧美日韩国产在线| 日韩免费成人网| 国内精品第一页| 国产婷婷色一区二区三区| 福利视频网站一区二区三区| 久久精品一级爱片| 久久精品国产成人一区二区三区| 色哟哟亚洲精品| 亚洲国产精品自拍| 91麻豆精品国产91久久久久久| 天堂影院一区二区| 精品国产乱码久久久久久蜜臀| 经典三级视频一区| 国产欧美日韩卡一| 91欧美一区二区| 午夜精品久久久久久久99水蜜桃| 7777精品久久久大香线蕉| 91丨porny丨国产| 久久久久久免费毛片精品| 国产做a爰片久久毛片| 久久久噜噜噜久久中文字幕色伊伊| 国产黑丝在线一区二区三区| 欧美在线观看视频一区二区| 亚洲18女电影在线观看| 日韩你懂的在线播放| 国产成人精品影院| 亚洲香肠在线观看| 日韩欧美一级片| 狂野欧美性猛交blacked| 欧美精品日韩一本| 国产精品资源在线观看| 亚洲色图制服诱惑| 日韩一区二区免费电影| 国产91富婆露脸刺激对白| 一区二区三区四区不卡在线| 日韩一卡二卡三卡四卡| 91女厕偷拍女厕偷拍高清| 香港成人在线视频| 国产日产欧产精品推荐色| 欧美在线不卡视频| 国产黄色精品视频| 亚洲一区在线看| 欧美日韩第一区日日骚| 韩国三级在线一区| 亚洲h在线观看| 中文字幕高清不卡| 欧美成人伊人久久综合网| av激情成人网| 亚洲午夜电影在线观看| 日韩欧美的一区| 欧美中文字幕一区| 成人综合婷婷国产精品久久免费| 日韩精品电影在线| 亚洲男人的天堂一区二区| 久久精品亚洲精品国产欧美| 制服丝袜亚洲播放| 一本大道av一区二区在线播放| 日本va欧美va欧美va精品| 亚洲乱码中文字幕综合| 国产色一区二区| 日韩无一区二区| 欧美群妇大交群的观看方式| 97国产一区二区| 成人免费电影视频| 国产精品一品二品| 亚洲成a人v欧美综合天堂 | 不卡视频一二三四| 久久97超碰色| 免费看精品久久片| 日韩av在线发布| 日韩黄色小视频| 亚洲成人综合在线| 日韩成人一区二区| 天天亚洲美女在线视频| 天天操天天色综合| 丝袜美腿成人在线| 亚洲成人免费在线观看| 亚洲妇熟xx妇色黄| 香蕉影视欧美成人| 亚洲一区在线观看视频| 亚洲成精国产精品女| 亚洲免费色视频| 国产精品久久久久影院亚瑟 | 在线观看一区日韩| 91一区二区在线| 色婷婷综合激情| 欧美性大战久久久久久久蜜臀 | 男女男精品网站| 黑人巨大精品欧美一区| 成人综合日日夜夜| 欧美三级蜜桃2在线观看| 日韩视频中午一区| 国产精品视频一二三| 亚洲高清在线视频| 国产伦精品一区二区三区视频青涩 | 婷婷夜色潮精品综合在线| 久久精品国产在热久久| 成人97人人超碰人人99| 欧美精品乱码久久久久久| 国产亚洲美州欧州综合国| 亚洲免费在线视频| 国产一区二区成人久久免费影院| 色香色香欲天天天影视综合网| 制服丝袜在线91| 亚洲欧美视频在线观看| 国内精品在线播放| 欧美偷拍一区二区| 欧美激情一区二区三区不卡| 五月开心婷婷久久| caoporen国产精品视频| 精品国偷自产国产一区| 亚洲综合成人在线视频| 国产剧情av麻豆香蕉精品| 欧美理论电影在线| 成人欧美一区二区三区白人| 精品亚洲国内自在自线福利| 欧洲色大大久久| 国产精品久久三| 国产一区二区在线观看免费| 欧美日本精品一区二区三区| 中文字幕日韩av资源站| 国产精品88av| 337p日本欧洲亚洲大胆精品| 日韩精品乱码免费| 成人高清视频免费观看| 久久婷婷国产综合国色天香| 亚洲免费视频成人| 国产999精品久久| 欧美一级欧美三级在线观看| 亚洲女女做受ⅹxx高潮| 成人免费毛片嘿嘿连载视频| 日韩免费高清av| 日本视频中文字幕一区二区三区| 在线观看亚洲精品视频| 亚洲日本va午夜在线电影| 高清不卡一区二区在线| 国产亚洲欧美日韩日本| 国产精品一二三四区| 精品久久国产97色综合| 裸体歌舞表演一区二区| 欧美精品第一页| 午夜视频在线观看一区二区| 欧美在线综合视频| 亚洲国产精品久久久久婷婷884| 色婷婷综合五月| 亚洲一区二区高清| 色先锋aa成人| 亚洲一级二级三级| 在线不卡a资源高清| 奇米影视一区二区三区小说| 日韩欧美一级二级|