AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Unnamed-Projekt > BigInt, MD5, RipeMD320, SHA, Streams usw.
Thema durchsuchen
Ansicht
Themen-Optionen

Unnamed-Projekt > BigInt, MD5, RipeMD320, SHA, Streams usw.

Ein Thema von himitsu · begonnen am 23. Mai 2008 · letzter Beitrag vom 19. Feb 2016
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.464 Beiträge
 
Delphi 12 Athens
 
#1

Re: Unnamed-Projekt > BigInt, MD5, RipeMD320, SHA, Stream

  Alt 25. Mai 2008, 18:47
ich hab mal schnell in Google gesucht und mir von da http://www2.cs.ucy.ac.cy/courses/EPL...test_tests.txt die Teststrings gemopst


ThxCRC32 geht demnach wieder
und der Rest folgt bestimmt auch bald.

hab mir das Ganze erstmal als kleines externes Testprojekt angelegt:
Delphi-Quellcode:
Program UnitTest;

{$APPTYPE CONSOLE}

Uses F_unknown, FType, FSecurity, FMemory, FBinary, FMath, FSystem,
  FFile, FStream, FHash;

{$INCLUDE FVersionsCheck.inc}

Var TestError: Boolean = False;

Procedure FHash_ThxCRC32Table;
  Const Test: ThxCRC32Table = (Data: ($00000000, $77073096, $ee0e612c, $990951ba, $076dc419, $706aF48F, $e963a535,
     $9e6495a3, $0edb8832, $79dcb8a4, $e0d5e91e, $97d2d988, $09b64c2b, $7eb17cbd, $e7b82d07, $90bF1d91, $1db71064,
     $6ab020F2, $F3b97148, $84be41de, $1adad47d, $6ddde4eb, $F4d4b551, $83d385c7, $136c9856, $646ba8c0, $Fd62F97a,
     $8a65c9ec, $14015c4F, $63066cd9, $Fa0F3d63, $8d080dF5, $3b6e20c8, $4c69105e, $d56041e4, $a2677172, $3c03e4d1,
     $4b04d447, $d20d85Fd, $a50ab56b, $35b5a8Fa, $42b2986c, $dbbbc9d6, $acbcF940, $32d86ce3, $45dF5c75, $dcd60dcF,
     $abd13d59, $26d930ac, $51de003a, $c8d75180, $bFd06116, $21b4F4b5, $56b3c423, $cFba9599, $b8bda50F, $2802b89e,
     $5F058808, $c60cd9b2, $b10be924, $2F6F7c87, $58684c11, $c1611dab, $b6662d3d, $76dc4190, $01db7106, $98d220bc,
     $eFd5102a, $71b18589, $06b6b51F, $9FbFe4a5, $e8b8d433, $7807c9a2, $0F00F934, $9609a88e, $e10e9818, $7F6a0dbb,
     $086d3d2d, $91646c97, $e6635c01, $6b6b51F4, $1c6c6162, $856530d8, $F262004e, $6c0695ed, $1b01a57b, $8208F4c1,
     $F50Fc457, $65b0d9c6, $12b7e950, $8bbeb8ea, $Fcb9887c, $62dd1ddF, $15da2d49, $8cd37cF3, $Fbd44c65, $4db26158,
     $3ab551ce, $a3bc0074, $d4bb30e2, $4adFa541, $3dd895d7, $a4d1c46d, $d3d6F4Fb, $4369e96a, $346ed9Fc, $ad678846,
     $da60b8d0, $44042d73, $33031de5, $aa0a4c5F, $dd0d7cc9, $5005713c, $270241aa, $be0b1010, $c90c2086, $5768b525,
     $206F85b3, $b966d409, $ce61e49F, $5edeF90e, $29d9c998, $b0d09822, $c7d7a8b4, $59b33d17, $2eb40d81, $b7bd5c3b,
     $c0ba6cad, $edb88320, $9abFb3b6, $03b6e20c, $74b1d29a, $ead54739, $9dd277aF, $04db2615, $73dc1683, $e3630b12,
     $94643b84, $0d6d6a3e, $7a6a5aa8, $e40ecF0b, $9309FF9d, $0a00ae27, $7d079eb1, $F00F9344, $8708a3d2, $1e01F268,
     $6906c2Fe, $F762575d, $806567cb, $196c3671, $6e6b06e7, $Fed41b76, $89d32be0, $10da7a5a, $67dd4acc, $F9b9dF6F,
     $8ebeeFF9, $17b7be43, $60b08ed5, $d6d6a3e8, $a1d1937e, $38d8c2c4, $4FdFF252, $d1bb67F1, $a6bc5767, $3Fb506dd,
     $48b2364b, $d80d2bda, $aF0a1b4c, $36034aF6, $41047a60, $dF60eFc3, $a867dF55, $316e8eeF, $4669be79, $cb61b38c,
     $bc66831a, $256Fd2a0, $5268e236, $cc0c7795, $bb0b4703, $220216b9, $5505262F, $c5ba3bbe, $b2bd0b28, $2bb45a92,
     $5cb36a04, $c2d7FFa7, $b5d0cF31, $2cd99e8b, $5bdeae1d, $9b64c2b0, $ec63F226, $756aa39c, $026d930a, $9c0906a9,
     $eb0e363F, $72076785, $05005713, $95bF4a82, $e2b87a14, $7bb12bae, $0cb61b38, $92d28e9b, $e5d5be0d, $7cdceFb7,
     $0bdbdF21, $86d3d2d4, $F1d4e242, $68ddb3F8, $1Fda836e, $81be16cd, $F6b9265b, $6Fb077e1, $18b74777, $88085ae6,
     $FF0F6a70, $66063bca, $11010b5c, $8F659eFF, $F862ae69, $616bFFd3, $166ccF45, $a00ae278, $d70dd2ee, $4e048354,
     $3903b3c2, $a7672661, $d06016F7, $4969474d, $3e6e77db, $aed16a4a, $d9d65adc, $40dF0b66, $37d83bF0, $a9bcae53,
     $debb9ec5, $47b2cF7F, $30b5FFe9, $bdbdF21c, $cabac28a, $53b39330, $24b4a3a6, $bad03605, $cdd70693, $54de5729,
     $23d967bF, $b3667a2e, $c4614ab8, $5d681b02, $2a6F2b94, $b40bbe37, $c30c8ea1, $5a05dF1b, $2d02eF8d));

  Var CRC32Tab: ThxCRC32Table;
    i: Integer;

  Label Exit;

  Begin
    WriteLn;
    WriteLn('********** FHash.ThxCRC32Table **********');
    WriteLn;
    CRC32Tab.CreateTable($EDB88320);
    For i := 0 to High(CRC32Tab.Data) do
      If CRC32Tab.Data[i] <> Test.Data[i] Then Begin
        TestError := True;
        WriteLn(WordToHex(CRC32Tab.Data[High(CRC32Tab.Data)]), ' [failed] **********');
        Goto Exit;
      End;
    WriteLn(WordToHex(CRC32Tab.Data[High(CRC32Tab.Data)]), ' [passed]');
    Exit:
    WriteLn(WordToHex($2d02eF8d), ' CRC32Tab.Data[255]');
    WriteLn;
    WriteLn;
  End;

Procedure FHash_ThxCRC32;
  Const Test: Array[0..15] of String = (
    '00000000', '',
    '43beb7e8', 'a',
    'c2412435', 'abc',
    '7f9d1520', 'message digest',
    'bd50274c', 'abcdefghijklmnopqrstuvwxyz',
    'd2e6c21f', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
    '724aa97c', '12345678901234567890123456789012345678901234567890123456789012345678901234567890',
    '2639f4cb', '123456789');

  Var CRC32: ThxCRC32;
    i: Integer;
    S, S2: String;

  Begin
    WriteLn;
    WriteLn('********** FHash.ThxCRC32 **********');
    WriteLn;
    CRC32.InitT;
    For i := 0 to High(Test) div 2 do Begin
      S := Test[i * 2 + 1];
      CRC32.Calc(PChar(S), Length(S));
      S2 := CRC32.asHexString;
      If S2 <> Test[i * 2] Then Begin
        WriteLn(S2, ' [failed] **********');
        TestError := True;
      End Else WriteLn(S2, ' [passed]');
      WriteLn(Test[i * 2], ' ', Copy('"' + Test[i * 2 + 1] + '"', 1, 69));
      WriteLn;
    End;
  End;

Begin
//ThMD5
//ThSHA
  FHash_ThxCRC32Table;
  FHash_ThxCRC32;
//ThxMD5
//ThxRMD320
  WriteLn;
  WriteLn;
  WriteLn('******************************');
  WriteLn;
  If TestError Then WriteLn('one or more tests [failed]') Else WriteLn('all tests [passed]');
  ReadLn;
End.
Code:
********** FHash.ThxCRC32Table **********

2d02ef8d [passed]
2d02ef8d CRC32Tab.Data[255]



********** FHash.ThxCRC32 **********

00000000  [passed]
00000000  ""

43beb7e8  [passed]
43beb7e8  "a"

c2412435  [passed]
c2412435  "abc"

7f9d1520  [passed]
7f9d1520  "message digest"

bd50274c [passed]
bd50274c "abcdefghijklmnopqrstuvwxyz"

d2e6c21f [passed]
d2e6c21f "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

724aa97c [passed]
724aa97c "12345678901234567890123456789012345678901234567890123456789012345678

2639f4cb [passed]
2639f4cb "123456789"



******************************

all tests [passed]

neuer Anhang samt Textprojekt ist oben im ersten Post zu finden
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz