 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AFE-GmdG JLI MVP


Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 28.01.2008, 13:21 Titel: MD5 - richtige Implementation |
|
|
Ich brauchte neulich die Hashfunktion MD5 in einem mir nicht mehr bekannten zusammenhang - war eher unwichtig.
Also habe ich mich nach den passenden Funktionen umgeschaut und bin fündig geworden.
So weit so gut - aber:
Ich wollte das Ergebnis überprüfen und hab die Linux-Implementierung openssl benutzt - und es kahm was anderes raus. Hä?
Also bin ich auf die Suche nach weiteren Implementierungen gegangen und hab ein bisschen getestet. Im Ergebnis bin ich sehr unzufrieden, fast keine Implementierung lieferte letztenendlich das selbe Ergebnis. Habe ich nun einen Denkfehler oder was soll das ganze.
Getestete Varianten - je mit dem Wort "Test" und "Täst"
OpenSSL
Test: 2205e48de5f93c784733ffcca841d2b5
Täst: f0824773e78355a7320c4b470c39952b
Transakt-SQL-Implementierung (Ansi)
Test: 0x0CBC6611F5540BD0809A388DC95A615B
Täst: 0xB81334F94779AC265A2CE60993F624C4
Transakt-SQL-Implementierung (Unicode)
Test: 0x8E06915D5F5D4F8754F51892D884C477
Täst: 0xCEFF9C790A33B60B981619AB4B3A10A2
PHP
Test: 0cbc6611f5540bd0809a388dc95a615b
Täst: b81334f94779ac265a2ce60993f624c4
MySql
Test: 0cbc6611f5540bd0809a388dc95a615b
Täst: ec6c6f5ba11c2a39787283694c332c1d
JavaScript-Implementierung, gefunden auf SelfHTML
Test: 0cbc6611f5540bd0809a388dc95a615b
Täst: 3ab5fe2fee94ba831b3da6477ab07c02
Fazit:
Wenn man keine Umlaute benutzt, würde ich sagen, dass die Implementierungen von
PHP, MySql, die Ansi-Implementierung von T-SQL und die Javascript-Version das ganze richtig machen. Da ich aber bisher davon ausgegangen bin, dass die Linux-Quelle von openssl als referenz gelten soll, bin ich mir da nicht mehr so sicher.
Benutzt man Umlaute ist man auf verlorenem Posten - da liefert jeder was anderes  _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
 |
PeaceKiller JLI Master

Alter: 36 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 28.01.2008, 13:25 Titel: |
|
|
Sicher, das das nicht mir dem Nullbyte am Ende vom String zusammenhängt? _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
 |
AFE-GmdG JLI MVP


Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 28.01.2008, 13:28 Titel: |
|
|
PeaceKiller hat Folgendes geschrieben: | Sicher, das das nicht mir dem Nullbyte am Ende vom String zusammenhängt? |
Keine Ahnung, Ich hab einfach nur die Funktionen in Minitestapplicationen geschrieben und das Ergebnis kopiert _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 28.01.2008, 19:52 Titel: |
|
|
Um das mit dem Umlauten zu umgehen kannst du z.B. Base64 verwenden. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|