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

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

?? pas_demo.pas

?? 一個我自用的BLOWFISH源碼VC++環境.有不完善的地方還請各位大俠指點~!
?? PAS
字號:

{
        PAS_DEMO.PAS
        test program for compatibility & speed of BLOWFISH.TPU
        language   : Turbo/Borland Pascal
        last update: 06/06/96
        (c)1996 Markus Hahn & Cedric Reinartz
}


program PAS_DEMO;
uses Crt, Dos, Blowfish;


const
  { official test vectors from DDJ 10/95... }
  key1        : String = 'abcdefghijklmnopqrstuvwxyz';
  testdata1_p : array[1..2] of ULONG = ($424c4f57, $46495348);
  testdata1_c : array[1..2] of ULONG = ($324ed0fe, $f413a203);

  key2        : String = 'Who is John Galt?';
  testdata2_p : array[1..2] of ULONG = ($fedcba98, $76543210);
  testdata2_c : array[1..2] of ULONG = ($cc91732b, $8022f684);

  BIGBUFSIZE  = 32000;
  TESTLOOPS   = 128;    { suitable for a DX4 }
  SCRLOOPS    = 1024;



{
        ULONG2HEX - converts a ULONG into a string
        -> ULONG
        <- String
}
function ULONG2Hex(ulTheVal : ULONG) : String;
const
  HEXTAB : String[16] = '0123456789abcdef';
var
      nI : Integer;
   sTemp : String[8];
begin
  sTemp[0]:=Chr(8);
  for nI:=0 to 7 do
    sTemp[8-nI]:=HEXTAB[((ulTheVal shr (nI*4)) and $0f) + 1];
  ULONG2Hex:=sTemp;
end;


{
        RANDOM32 - creates a 32 bit random value
        <- random ULONG
}
function Random32 : ULONG;
begin
  Random32:=(ULONG(Random($ffff)) shl 16) or Random($ffff);
end;


{ big buffer for benchmark }
type
  PBigBuf = ^TBigBuf;
  TBigBuf = array[1..BIGBUFSIZE] of Byte;


{ global data... }
var
  ulCBCIVL   : ULONG;   { IV = initialisation vector }
  ulCBCIVR   : ULONG;
  ulCBCLeft  : ULONG;
  ulCBCRight : ULONG;
  ulEqual    : ULONG;
  sMyKey     : String;
  testbuf    : array[1..6] of ULONG;
  unI        : UINT;
  biggy      : PBigBuf;
  ulStart    : ULONG;
  ulTime     : ULONG;
  ulRate     : ULONG;
  h,m,s,c    : UINT;
  pBoxes     : P_ULONG_Buffer;
  BF_key     : array[1..1058] of ULONG;
  BF_keysave : array[1..1058] of ULONG;
  pScreen    : P_ULONG_Buffer;



begin
     ClrScr;
     Randomize;

     Blowfish_GetBoxes(@BF_key[1]);      { save original boxes }
     { the following compare is not necessary. Just to show the function }
     if Blowfish_SetRounds(16) <> 16 then writeln('Could not set Rounds');

     { Are we compatible? }

     { test vector #1 }
     TextColor(10); WriteLn('test data #1...'); TextColor(7);

     Blowfish_Init(@key1[1], Length(key1));
     { show the first 6 p-boxes }
     pBoxes:=Blowfish_GetBoxPointer;
     Write('pboxes : ');
     for unI:=0 to 5 do
       Write(ULONG2Hex(pBoxes^[unI]), ' ');
     WriteLn;
     { now en-/decrypt and compare with the official values }
     WriteLn('plaintext : ', ULONG2Hex(testdata1_p[1]),
             ' ',            ULONG2Hex(testdata1_p[2]));
     Blowfish_ECBEncrypt(@testdata1_p[1], 8);
     WriteLn('ciphertext: ', ULONG2Hex(testdata1_p[1]),
             ' ',            ULONG2Hex(testdata1_p[2]));
     WriteLn('DDJ 10/95 : ', ULONG2Hex(testdata1_c[1]),
             ' ',            ULONG2Hex(testdata1_c[2]));
     Blowfish_ECBDecrypt(@testdata1_p[1], 8);
     WriteLn('decrypted : ', ULONG2Hex(testdata1_p[1]),
             ' ',            ULONG2Hex(testdata1_p[2]));

     { #2 }
     TextColor(10); WriteLn('test data #2...'); TextColor(7);
     Blowfish_SetBoxes(@BF_key[1]);      { reload boxes }
     Blowfish_Init(@key2[1], Length(key2));
     pBoxes:=Blowfish_GetBoxPointer;
     Write('pboxes : ');
     for unI:=0 to 5 do
       Write(ULONG2Hex(pBoxes^[unI]), ' ');
     WriteLn;
     WriteLn('plaintext : ', ULONG2Hex(testdata2_p[1]),
             ' ',            ULONG2Hex(testdata2_p[2]));
     Blowfish_ECBEncrypt(@testdata2_p[1], 8);
     WriteLn('ciphertext: ', ULONG2Hex(testdata2_p[1]),
             ' ',            ULONG2Hex(testdata2_p[2]));
     WriteLn('DDJ 10/95 : ', ULONG2Hex(testdata2_c[1]),
             ' ',            ULONG2Hex(testdata2_c[2]));
     Blowfish_ECBDecrypt(@testdata2_p[1], 8);
     WriteLn('decrypted : ', ULONG2Hex(testdata2_p[1]),
             ' ',            ULONG2Hex(testdata2_p[2]));
     WriteLn(#13#10, 'press a key ...', #13#10);
     ReadKey;

     { test ECB routines, work with small buffer... }
     { 16 rounds }
     Blowfish_SetBoxes(@BF_key[1]);      { reload boxes }
     sMyKey:='Who wants some?';
     Blowfish_Init(@sMyKey[1], Length(sMyKey));
     TextColor(10); WriteLn('ECB test, 16 rounds...'); TextColor(7);
     WriteLn('original data:');
     { generate and show random numbers...}
     for unI:=1 to 6 do begin
       testbuf[unI]:=Random32;
       Write(ULONG2Hex(testbuf[unI]), '  ');
     end;
     WriteLn;
     WriteLn('encrypted data:');
     Blowfish_ECBEncrypt(@testbuf[1], 6*4);
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn;
     WriteLn('decrypted data:');
     Blowfish_ECBDecrypt(@testbuf[1], 6*4);
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn;
     { 32 rounds }
     Blowfish_SetRounds(32);      { set number of encryption rounds to 32 }
     Blowfish_SetBoxes(@BF_key[1]);      { reload boxes }
     sMyKey:='Who wants some?';
     Blowfish_Init(@sMyKey[1], Length(sMyKey));
     TextColor(10); WriteLn('ECB test, 32 rounds...'); TextColor(7);
     WriteLn('original data:');
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn;
     WriteLn('encrypted data:');
     Blowfish_ECBEncrypt(@testbuf[1], 6*4);
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn;
     WriteLn('decrypted data:');
     Blowfish_ECBDecrypt(@testbuf[1], 6*4);
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn; WriteLn;

     WriteLn(#13#10, 'press a key...', #13#10);
     ReadKey;

     { now test the CBC routines... }
     { 16 rounds }
     Blowfish_SetRounds(16);
     sMyKey:='Damn, I''m looking good!';
     TextColor(10); WriteLn('CBC test, 16 rounds...'); TextColor(7);
     ulCBCLeft:=Random32;     { create an IV "server" }
     ulCBCRight:=Random32;
     ulCBCIVL:=ulCBCLeft;
     ulCBCIVR:=ulCBCRight;
     WriteLn('IV: ', ULONG2Hex(ulCBCIVL),
             ' ',    ULONG2Hex(ulCBCIVR));
     WriteLn('original data:');
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn;
     WriteLn('encrypted data:');
     Blowfish_SetBoxes(@BF_key[1]);    { reload boxes }
     Blowfish_Init(@sMyKey[1], Length(sMyKey));
     Blowfish_CBCEncrypt(@testbuf[1], 6*4, ulCBCIVL, ulCBCIVR);
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn;
     WriteLn('decrypted data :');
     { just do some overhead for provocation :) }
     sMyKey:='Damn, I''m looking good!Damn, I''m looking good!';
     Blowfish_SetBoxes(@BF_key[1]);
     Blowfish_Init(@sMyKey[1], Length(sMyKey));
     { decrypt in 2 parts to double check the TPU }
     ulCBCIVL:=ulCBCLeft;
     ulCBCIVR:=ulCBCRight;
     Blowfish_CBCDecrypt(@testbuf[1], 2*4, ulCBCIVL, ulCBCIVR);
     Blowfish_CBCDecrypt(@testbuf[3], 4*4, ulCBCIVL, ulCBCIVR);
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn;
     { 32 rounds }
     Blowfish_SetRounds(32);
     ulCBCIVL  :=ulCBCLeft;
     ulCBCIVR  :=ulCBCRight;
     TextColor(10); WriteLn('CBC test, 32 rounds...'); TextColor(7);
     WriteLn('IV: ', ULONG2Hex(ulCBCIVL),
             ' ',    ULONG2Hex(ulCBCIVR));
     WriteLn('original data :');
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn;
     WriteLn('encrypted data :');
     Blowfish_SetBoxes(@BF_key[1]);      { reload Boxes }
     sMyKey:='Damn, I''m looking good!';
     Blowfish_Init(@sMyKey[1], Length(sMyKey));
     Blowfish_CBCEncrypt(@testbuf[1], 6*4, ulCBCLeft, ulCBCRight);
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn;
     WriteLn('decrypted data :');
     Blowfish_SetBoxes(@BF_key[1]);      { reload Boxes }
     Blowfish_Init(@sMyKey[1], Length(sMyKey));
     { decrypt in 2 parts to double check the correct reentry }
     Blowfish_CBCDecrypt(@testbuf[1], 2*4, ulCBCIVL, ulCBCIVR);
     Blowfish_CBCDecrypt(@testbuf[3], 4*4, ulCBCIVL, ulCBCIVR);
     for unI:=1 to 6 do Write(ULONG2Hex(testbuf[unI]), '  ');
     WriteLn; WriteLn;

    { benchmark, using CBC and a 32kB test buffer }
    New(biggy);
    TextColor(10); WriteLn('performance with 16 rounds...'); TextColor(7);
    Blowfish_SetRounds(16);
    GetTime(h,m,s,c);
    ulStart:=ULONG(h)*3600*100 + ULONG(m)*60*100 + ULONG(s)*100 + ULONG(c);
    for unI:=1 to TESTLOOPS do
      Blowfish_CBCEncrypt(@biggy^[1], BIGBUFSIZE, ulCBCLeft, ulCBCRight);
    GetTime(h,m,s,c);
    ulTime:=(ULONG(h)*3600*100 + ULONG(m)*60*100 + ULONG(s)*100 + ULONG(c))-ulStart;
    ulRate:=((TESTLOOPS*BIGBUFSIZE) div ulTime) * 100;
    WriteLn(ulRate,  ' bytes per second');

    TextColor(10); WriteLn('performance with 32 rounds...'); TextColor(7);
    Blowfish_SetRounds(32);
    GetTime(h,m,s,c);
    ulStart:=ULONG(h)*3600*100 + ULONG(m)*60*100 + ULONG(s)*100 + ULONG(c);
    for unI:=1 to TESTLOOPS do
      Blowfish_CBCEncrypt(@biggy^[1], BIGBUFSIZE, ulCBCLeft, ulCBCRight);
    GetTime(h,m,s,c);
    ulTime:=(ULONG(h)*3600*100 + ULONG(m)*60*100 + ULONG(s)*100 + ULONG(c))-ulStart;
    ulRate:=((TESTLOOPS*BIGBUFSIZE) div ulTime) * 100;
    WriteLn(ulRate,  ' bytes per second');

    Dispose(biggy);


    { check the weak key detector... }
    TextColor(10); WriteLn(#13#10+'weak key check...'); TextColor(7);

    Blowfish_SetRounds(16);
    Blowfish_GetBoxes(@BF_key);
    Blowfish_SetRounds(32);
    Blowfish_GetBoxes(@BF_keysave);

    Write('16 rounds: ', Blowfish_WeakKey);
    Blowfish_SetRounds(16);
    ulEqual:=Random32;
    BF_key[18+Random(1024)]:=ulEqual;
    BF_key[18+Random(1024)]:=ulEqual;
    Blowfish_SetBoxes(@BF_key);
    WriteLn(' ', Blowfish_WeakKey);

    Blowfish_SetRounds(32);
    Blowfish_SetBoxes(@BF_keysave);
    Write('32 rounds: ', Blowfish_WeakKey);
    ulEqual:=Random32;
    BF_keysave[18+Random(1024)]:=ulEqual;
    BF_keysave[18+Random(1024)]:=ulEqual;
    Blowfish_SetBoxes(@BF_keysave);
    WriteLn(' ', Blowfish_WeakKey);

    { do something funny,
      encrypt the screen... }

    WriteLn(#13#10,
            'We will now encrypt your video memory. If the flicker has'+#13#10,
            'stopped you must press a key to decrypt/restore it again.'+#13#10,
            'You''ll also saw some equal parts, a good example _not_ to'+#13#10,
            'use ECB but CBC :)'+#13#10#13#10,
            'press a key...');
    ReadKey;
    Blowfish_SetRounds(16);
    { assume 80x25 color textmode }
    pScreen:=Ptr($b800, 0);
    { Blowfish is so fast we do some extra loops for better animation here,
      not necessary in the real world, of course }
    for unI:=1 to SCRLOOPS do Blowfish_ECBEncrypt(pScreen, 4000);
    ReadKey;
    for unI:=1 to SCRLOOPS do Blowfish_ECBDecrypt(pScreen, 4000);
    WriteLn(#13#10+'That''s all folks!');


end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产不卡在线视频| 中文字幕欧美国产| 国产视频一区在线播放| 伊人性伊人情综合网| 国内久久精品视频| 欧美唯美清纯偷拍| 国产精品毛片久久久久久| 日韩电影在线免费| 欧美中文字幕一区二区三区| 精品国产一区二区三区不卡 | 99精品久久只有精品| 欧美放荡的少妇| 樱桃视频在线观看一区| 高清久久久久久| 精品国产不卡一区二区三区| 亚洲成年人网站在线观看| 99久久精品情趣| 久久久精品tv| 国产在线精品一区二区三区不卡 | 欧美二区乱c少妇| 亚洲综合在线观看视频| 成人91在线观看| 精品久久久网站| 日本午夜精品一区二区三区电影| 色呦呦网站一区| 亚洲四区在线观看| av动漫一区二区| 国产亚洲欧美激情| 国产成人av影院| 久久精品视频在线免费观看| 久久av老司机精品网站导航| 欧美videos大乳护士334| 日本欧美加勒比视频| 欧美日韩亚洲高清一区二区| 亚洲一区在线看| 欧美性猛交xxxxxxxx| 亚洲影视在线播放| 欧美日韩www| 日本视频一区二区| 欧美一区二区三区不卡| 免播放器亚洲一区| 日韩精品一区二区三区swag | 亚洲天堂福利av| 一本久久综合亚洲鲁鲁五月天| 自拍偷自拍亚洲精品播放| www.亚洲在线| 洋洋av久久久久久久一区| 欧美在线免费观看视频| 香蕉加勒比综合久久| 欧美一二三区在线| 精品在线一区二区| 中文字幕成人网| 在线免费不卡视频| 奇米精品一区二区三区四区 | 色欧美日韩亚洲| 午夜亚洲福利老司机| 日韩一区二区影院| 国产成人午夜99999| 亚洲人成7777| 欧美一区二区网站| 国产精品一级片| 艳妇臀荡乳欲伦亚洲一区| 在线播放视频一区| 国产精品综合久久| 亚洲欧美电影院| 欧美第一区第二区| 9l国产精品久久久久麻豆| 亚洲一区二区三区免费视频| 日韩片之四级片| 91论坛在线播放| 老司机精品视频导航| 亚洲三级在线看| 久久影音资源网| 欧美在线观看一区| 国产精品综合av一区二区国产馆| 伊人色综合久久天天| 亚洲精品一区二区三区香蕉| 一本一道综合狠狠老| 激情综合色播激情啊| 亚洲精品成a人| 久久综合九色综合97_久久久| 欧美制服丝袜第一页| 国产一区二区三区久久悠悠色av| 一区二区三区四区蜜桃| 国产喷白浆一区二区三区| 欧美性受极品xxxx喷水| 成人午夜电影网站| 美女任你摸久久| 亚洲午夜在线视频| 国产精品毛片久久久久久| 精品免费一区二区三区| 欧美亚洲国产一区二区三区 | 国产精品女主播av| 日韩免费在线观看| 欧美视频在线观看一区| heyzo一本久久综合| 久久99久久精品| 首页综合国产亚洲丝袜| 亚洲最新视频在线观看| 中文字幕中文字幕一区二区| 久久精品欧美日韩| 日韩欧美国产电影| 3d成人h动漫网站入口| 欧美性猛片xxxx免费看久爱| av毛片久久久久**hd| 成人激情免费视频| 高清不卡在线观看| 国产ts人妖一区二区| 国产一区二区中文字幕| 久久精品国产亚洲一区二区三区| 婷婷综合久久一区二区三区| 亚洲成a人v欧美综合天堂下载| 亚洲另类一区二区| 亚洲男人的天堂网| 亚洲人成伊人成综合网小说| 中文字幕亚洲精品在线观看| 国产精品成人一区二区艾草| 中文字幕一区在线| 亚洲欧美在线aaa| 亚洲你懂的在线视频| 尤物视频一区二区| 亚洲福利电影网| 天天综合网天天综合色 | 亚洲日本在线观看| 中文字幕综合网| 一区二区三区欧美激情| 一区二区三区高清| 婷婷久久综合九色综合绿巨人| 亚洲一区二三区| 天堂一区二区在线| 麻豆久久久久久| 国产电影精品久久禁18| 成人国产精品免费观看视频| 一本色道久久综合亚洲aⅴ蜜桃 | 91精品国产免费| 精品久久久影院| 国产精品丝袜一区| 一区二区三区中文字幕精品精品| 亚洲午夜精品久久久久久久久| 亚洲成在人线在线播放| 麻豆精品精品国产自在97香蕉| 国产精品一二二区| 成人99免费视频| 欧美美女黄视频| 国产婷婷色一区二区三区四区| 国产精品久久久久久妇女6080| 亚洲国产视频网站| 国产中文字幕精品| 91黄色在线观看| 制服丝袜成人动漫| 国产精品无遮挡| 午夜亚洲国产au精品一区二区| 狠狠色综合色综合网络| 91麻豆国产在线观看| 日韩三级在线免费观看| 国产精品欧美久久久久无广告 | 久久99久久99| 99精品国产热久久91蜜凸| 3751色影院一区二区三区| 国产精品美女久久福利网站| 人人超碰91尤物精品国产| caoporn国产精品| 欧美一区二区三区免费视频| 国产精品美女www爽爽爽| 蜜桃精品视频在线观看| 色94色欧美sute亚洲线路一ni| 亚洲精品在线电影| 三级不卡在线观看| 99久久精品国产网站| 久久久亚洲午夜电影| 亚洲777理论| 91免费看片在线观看| 久久综合久久久久88| 日韩在线观看一区二区| av影院午夜一区| 久久九九全国免费| 六月丁香婷婷久久| 欧美日韩一区高清| 亚洲女人的天堂| 风间由美一区二区av101| 欧美一区二区女人| 亚洲123区在线观看| 日本久久电影网| 日韩理论片一区二区| 国产91在线看| 久久伊99综合婷婷久久伊| 天天av天天翘天天综合网色鬼国产| 成人av电影在线| 亚洲国产精品ⅴa在线观看| 国产一区亚洲一区| 欧美不卡一二三| 免费观看一级特黄欧美大片| 欧美精品免费视频| 午夜精品免费在线| 欧美日韩卡一卡二| 天天爽夜夜爽夜夜爽精品视频| 欧美性猛交一区二区三区精品| 依依成人精品视频| 在线视频国内自拍亚洲视频| 一区二区三区在线视频免费|