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

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

?? rc2.pas

?? 關于RC2加密的完整的delphi程序 源代碼。
?? PAS
字號:
{
***************************************************
* A binary compatible RC2 implementation          *
* written by Dave Barton (davebarton@bigfoot.com) *
***************************************************
* 64bit block encryption                          *
* Variable size key - up to 1024bit               *
***************************************************
}
unit RC2;

interface
uses
  Sysutils, Tools;

type
  TRC2Data= record
    InitBlock: array[0..7] of byte;    { initial IV }
    LastBlock: array[0..7] of byte;    { current IV }
    case integer of
      0: (KeyB: array[0..127] of byte);
      1: (KeyW: array[0..63] of word);
  end;

function RC2SelfTest: boolean;
  { performs a self test on this implementation }
procedure RC2Init(var Data: TRC2Data; Key: pointer; Len: integer; IV: pointer);
  { initializes the TRC2Data structure with the key information and IV if applicable }
procedure RC2Burn(var Data: TRC2Data);
  { erases all information about the key }

procedure RC2EncryptECB(var Data: TRC2Data; InData, OutData: pointer);
  { encrypts the data in a 64bit block using the ECB mode }
procedure RC2EncryptCBC(var Data: TRC2Data; InData, OutData: pointer);
  { encrypts the data in a 64bit block using the CBC chaining mode }
procedure RC2EncryptOFB(var Data: TRC2Data; InData, OutData: pointer);
  { encrypts the data in a 64bit block using the OFB chaining mode }
procedure RC2EncryptCFB(var Data: TRC2Data; InData, OutData: pointer; Len: integer);
  { encrypts Len bytes of data using the CFB chaining mode }
procedure RC2EncryptOFBC(var Data: TRC2Data; InData, OutData: pointer; Len: integer);
  { encrypts Len bytes of data using the OFB counter chaining mode }

procedure RC2DecryptECB(var Data: TRC2Data; InData, OutData: pointer);
  { decrypts the data in a 64bit block using the ECB mode }
procedure RC2DecryptCBC(var Data: TRC2Data; InData, OutData: pointer);
  { decrypts the data in a 64bit block using the CBC chaining mode }
procedure RC2DecryptOFB(var Data: TRC2Data; InData, OutData: pointer);
  { decrypts the data in a 64bit block using the OFB chaining mode }
procedure RC2DecryptCFB(var Data: TRC2Data; InData, OutData: pointer; Len: integer);
  { decrypts Len bytes of data using the CFB chaining mode }
procedure RC2DecryptOFBC(var Data: TRC2Data; InData, OutData: pointer; Len: integer);
  { decrypts Len bytes of data using the OFB counter chaining mode }

procedure RC2Reset(var Data: TRC2Data);
  { resets the chaining mode information }

{******************************************************************************}
implementation

{$I RC2.Inc}

function RC2SelfTest;
const
  Key: array[0..15] of byte=
    ($00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0E,$0F);
  InBlock: array[0..7] of byte=
    ($00,$00,$00,$00,$00,$00,$00,$00);
  OutBlock: array[0..7] of byte=
    ($50,$DC,$01,$62,$BD,$75,$7F,$31);
var
  Block: array[0..7] of byte;
  Data: TRC2Data;
begin
  RC2Init(Data,@Key,Sizeof(Key),nil);
  RC2EncryptECB(Data,@InBlock,@Block);
  Result:= CompareMem(@Block,@OutBlock,Sizeof(Block));
  RC2DecryptECB(Data,@Block,@Block);
  Result:= Result and CompareMem(@Block,@InBlock,Sizeof(Block));
  RC2Burn(Data);
end;

procedure RC2Init;
var
  i: integer;
begin
  if (Len<= 0) or (Len> 128) then
    raise Exception.Create('RC2: Invalid key length');
  with Data do
  begin
    if IV= nil then
    begin
      FillChar(InitBlock,8,0);
      FillChar(LastBlock,8,0);
    end
    else
    begin
      Move(IV^,InitBlock,8);
      Move(IV^,LastBlock,8);
    end;
    Move(Key^,KeyB,Len);
    for i:= Len to 127 do
      KeyB[i]:= sBox[(KeyB[i-Len]+KeyB[i-1]) and $FF];
    KeyB[0]:= sBox[KeyB[0]];
  end;
end;

procedure RC2Burn;
begin
  FillChar(Data,Sizeof(Data),0);
end;

procedure RC2EncryptECB;
var
  i, j: integer;
  w0, w1, w2, w3: word;
begin
  Move(InData^,w0,2);
  Move(pointer(integer(InData)+2)^,w1,2);
  Move(pointer(integer(InData)+4)^,w2,2);
  Move(pointer(integer(InData)+6)^,w3,2);
  for i:= 0 to 15 do
  begin
    j:= i*4;
    w0:= Lrot16((w0+(w1 and (w3 xor $FFFF))+(w2 and w3)+Data.KeyW[j+0]),1);
    w1:= Lrot16((w1+(w2 and (w0 xor $FFFF))+(w3 and w0)+Data.KeyW[j+1]),2);
    w2:= Lrot16((w2+(w3 and (w1 xor $FFFF))+(w0 and w1)+Data.KeyW[j+2]),3);
    w3:= Lrot16((w3+(w0 and (w2 xor $FFFF))+(w1 and w2)+Data.KeyW[j+3]),5);
    if (i= 4) or (i= 10) then
    begin
      w0:= w0+Data.KeyW[w3 and 63];
      w1:= w1+Data.KeyW[w0 and 63];
      w2:= w2+Data.KeyW[w1 and 63];
      w3:= w3+Data.KeyW[w2 and 63];
    end;
  end;
  Move(w0,OutData^,2);
  Move(w1,pointer(integer(OutData)+2)^,2);
  Move(w2,pointer(integer(OutData)+4)^,2);
  Move(w3,pointer(integer(OutData)+6)^,2);
end;

procedure RC2DecryptECB;
var
  i, j: integer;
  w0, w1, w2, w3: word;
begin
  Move(InData^,w0,2);
  Move(pointer(integer(InData)+2)^,w1,2);
  Move(pointer(integer(InData)+4)^,w2,2);
  Move(pointer(integer(InData)+6)^,w3,2);
  for i:= 15 downto 0 do
  begin
    j:= i*4;
    w3:= Rrot16(w3,5)-(w0 and (w2 xor $FFFF))-(w1 and w2)-Data.KeyW[j+3];
    w2:= Rrot16(w2,3)-(w3 and (w1 xor $FFFF))-(w0 and w1)-Data.KeyW[j+2];
    w1:= Rrot16(w1,2)-(w2 and (w0 xor $FFFF))-(w3 and w0)-Data.KeyW[j+1];
    w0:= Rrot16(w0,1)-(w1 and (w3 xor $FFFF))-(w2 and w3)-Data.KeyW[j+0];
    if (i= 5) or (i= 11) then
    begin
      w3:= w3-Data.KeyW[w2 and 63];
      w2:= w2-Data.KeyW[w1 and 63];
      w1:= w1-Data.KeyW[w0 and 63];
      w0:= w0-Data.KeyW[w3 and 63];
    end;
  end;
  Move(w0,OutData^,2);
  Move(w1,pointer(integer(OutData)+2)^,2);
  Move(w2,pointer(integer(OutData)+4)^,2);
  Move(w3,pointer(integer(OutData)+6)^,2);
end;

procedure RC2EncryptCBC;
begin
  XorBlock(InData,@Data.LastBlock,OutData,8);
  RC2EncryptECB(Data,OutData,OutData);
  Move(OutData^,Data.LastBlock,8);
end;

procedure RC2DecryptCBC;
var
  TempBlock: array[0..7] of byte;
begin
  Move(InData^,TempBlock,8);
  RC2DecryptECB(Data,InData,OutData);
  XorBlock(OutData,@Data.LastBlock,OutData,8);
  Move(TempBlock,Data.LastBlock,8);
end;

procedure RC2EncryptCFB;
var
  i: integer;
  TempBlock: array[0..7] of byte;
begin
  for i:= 0 to Len-1 do
  begin
    RC2EncryptECB(Data,@Data.LastBlock,@TempBlock);
    PByteArray(OutData)[i]:= PByteArray(InData)[i] xor TempBlock[0];
    Move(Data.LastBlock[1],Data.LastBlock[0],7);
    Data.LastBlock[7]:= PByteArray(OutData)[i];
  end;
end;

procedure RC2DecryptCFB;
var
  i: integer;
  TempBlock: array[0..7] of byte;
  b: byte;
begin
  for i:= 0 to Len-1 do
  begin
    b:= PByteArray(InData)[i];
    RC2EncryptECB(Data,@Data.LastBlock,@TempBlock);
    PByteArray(OutData)[i]:= PByteArray(InData)[i] xor TempBlock[0];
    Move(Data.LastBlock[1],Data.LastBlock[0],7);
    Data.LastBlock[7]:= b;
  end;
end;

procedure RC2EncryptOFB;
begin
  RC2EncryptECB(Data,@Data.LastBlock,@Data.LastBlock);
  XorBlock(@Data.LastBlock,InData,OutData,8);
end;

procedure RC2DecryptOFB;
begin
  RC2EncryptECB(Data,@Data.LastBlock,@Data.LastBlock);
  XorBlock(@Data.LastBlock,InData,OutData,8);
end;

procedure RC2EncryptOFBC;
var
  i: integer;
  TempBlock: array[0..7] of byte;
begin
  for i:= 0 to Len-1 do
  begin
    RC2EncryptECB(Data,@Data.LastBlock,@TempBlock);
    PByteArray(OutData)[i]:= PByteArray(InData)[i] xor TempBlock[0];
    IncBlock(@Data.LastBlock,8);
  end;
end;

procedure RC2DecryptOFBC;
var
  i: integer;
  TempBlock: array[0..7] of byte;
begin
  for i:= 0 to Len-1 do
  begin
    RC2EncryptECB(Data,@Data.LastBlock,@TempBlock);
    PByteArray(OutData)[i]:= PByteArray(InData)[i] xor TempBlock[0];
    IncBlock(@Data.LastBlock,8);
  end;
end;

procedure RC2Reset;
begin
  Move(Data.InitBlock,Data.LastBlock,8);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品在线三区| 精品日韩一区二区三区| 亚洲精品乱码久久久久久黑人| av中文字幕一区| 亚洲三级免费电影| 欧美日本乱大交xxxxx| 蜜臀国产一区二区三区在线播放| 精品乱人伦一区二区三区| 国产伦精一区二区三区| 国产精品每日更新| 欧美日韩在线观看一区二区| 日韩成人午夜精品| 久久精品一区二区三区不卡牛牛 | 亚洲一区免费在线观看| 在线播放日韩导航| 国产精品2024| 亚洲精品水蜜桃| 日韩精品一区二| 成人av电影免费在线播放| 亚洲综合区在线| 欧美成人aa大片| 99久久婷婷国产| 免费一级欧美片在线观看| 国产日韩三级在线| 欧美日韩三级一区| 国产精品66部| 日韩经典中文字幕一区| 欧美极品xxx| 欧美一区二区福利在线| 99精品视频在线观看| 欧美aaaaa成人免费观看视频| 久久久国际精品| 欧美日韩一区二区三区在线 | 国产麻豆欧美日韩一区| 亚洲三级电影网站| 精品国产1区2区3区| 91福利国产精品| 国产丶欧美丶日本不卡视频| 亚洲欧美国产77777| 久久久久久夜精品精品免费| 欧美色手机在线观看| 国产乱人伦精品一区二区在线观看| 亚洲一区二区三区视频在线| 国产精品系列在线| 欧美成人精品1314www| 欧美三区免费完整视频在线观看| 国产aⅴ综合色| 蜜臀久久久99精品久久久久久| 亚洲三级视频在线观看| 中日韩av电影| 国产亚洲综合在线| 欧美电影精品一区二区| 欧美日韩一区二区三区在线看 | 91在线国产观看| 激情欧美一区二区| 三级在线观看一区二区| 亚洲综合免费观看高清完整版| 中文一区在线播放| 欧美经典一区二区三区| 日韩欧美在线123| 在线观看91av| 欧美精品亚洲一区二区在线播放| 91久久奴性调教| av色综合久久天堂av综合| 成人在线综合网站| 国产高清久久久久| 国产尤物一区二区在线 | 国产成人免费在线视频| 久久爱另类一区二区小说| 日本不卡在线视频| 日日欢夜夜爽一区| 奇米影视在线99精品| 丝袜亚洲另类欧美综合| 亚洲成人在线免费| 日韩激情视频在线观看| 天堂影院一区二区| 午夜a成v人精品| 日韩国产在线观看| 日产国产高清一区二区三区| 日韩电影免费在线看| 美女一区二区视频| 九九视频精品免费| 国产91高潮流白浆在线麻豆 | 91性感美女视频| 97se亚洲国产综合自在线| 色综合视频一区二区三区高清| 91色porny| 欧美三级韩国三级日本三斤| 欧美理论在线播放| 日韩欧美中文字幕精品| 国产亚洲成年网址在线观看| 国产精品美女久久福利网站| 亚洲自拍另类综合| 日本亚洲天堂网| 国内成+人亚洲+欧美+综合在线| 国产精一区二区三区| 99精品久久只有精品| 欧美色图激情小说| 亚洲精品在线电影| 亚洲欧洲日韩女同| 亚洲成人高清在线| 黄色成人免费在线| 9i看片成人免费高清| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美日韩国产小视频在线观看| 欧美电影免费观看高清完整版| 国产精品无人区| 亚洲一区二区四区蜜桃| 久久精品免费观看| 成人黄色777网| 欧美日本在线视频| 久久久久久97三级| 亚洲在线观看免费| 国产一区二区福利| 欧美视频第二页| 久久久久国产精品麻豆| 一区二区不卡在线视频 午夜欧美不卡在| 日韩精品欧美精品| 北岛玲一区二区三区四区| 欧美精品v日韩精品v韩国精品v| 国产亚洲婷婷免费| 亚洲mv在线观看| 波多野结衣亚洲一区| 日韩精品一区二区三区在线观看| 日韩美女久久久| 国产乱码精品1区2区3区| 色妹子一区二区| 精品精品国产高清a毛片牛牛 | 一区二区三区中文字幕电影| 久热成人在线视频| 在线视频中文字幕一区二区| www国产精品av| 免费观看在线综合色| 在线区一区二视频| 国产精品久久看| 国产一区二区中文字幕| 97成人超碰视| 国产精品女人毛片| 国产综合一区二区| 在线91免费看| 亚洲不卡av一区二区三区| 91一区一区三区| 欧美高清在线视频| 国产在线一区观看| 日韩三级精品电影久久久| 香蕉影视欧美成人| 成人午夜在线播放| 久久久美女毛片| 韩国精品一区二区| 日韩你懂的电影在线观看| 亚洲va欧美va天堂v国产综合| 色婷婷综合久久久中文一区二区| 国产精品色婷婷| 国产不卡视频一区二区三区| 精品国产一区二区在线观看| 日日夜夜一区二区| 这里是久久伊人| 男男成人高潮片免费网站| 欧美日韩激情在线| 亚洲国产欧美日韩另类综合 | 精品国偷自产国产一区| 丝袜美腿高跟呻吟高潮一区| 欧美日韩中文另类| 亚洲一区二区三区美女| 欧美在线影院一区二区| 亚洲欧美日韩在线不卡| 色欧美日韩亚洲| 亚洲综合色噜噜狠狠| 欧美日韩一卡二卡三卡| 同产精品九九九| 日韩视频在线观看一区二区| 青青草国产成人99久久| 日韩精品中文字幕在线不卡尤物| 日本不卡123| 久久精品日产第一区二区三区高清版| 经典三级在线一区| 久久久一区二区三区捆绑**| 国产精品1区2区3区在线观看| 久久精品亚洲精品国产欧美| 成人av电影在线| 亚洲激情在线激情| 欧美色视频在线观看| 日本大胆欧美人术艺术动态| 久久久久久久久久电影| 97久久久精品综合88久久| 一区二区三区精品视频在线| 欧美日韩五月天| 久久精品国产**网站演员| 久久婷婷成人综合色| 成人福利在线看| 亚洲精品午夜久久久| 欧美一级理论性理论a| 国产麻豆精品theporn| 亚洲日穴在线视频| 91麻豆精品国产自产在线观看一区 | 国产精品77777竹菊影视小说| 国产精品久久久久久久久免费丝袜 | 轻轻草成人在线| 久久久www成人免费毛片麻豆 | 午夜亚洲国产au精品一区二区|