AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

md5.pas bringt anderes Ergebnis als php md5

Ein Thema von tofse · begonnen am 9. Sep 2013 · letzter Beitrag vom 11. Sep 2013
Antwort Antwort
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#1

AW: md5.pas bringt anderes Ergebnis als php md5

  Alt 9. Sep 2013, 10:28
Bei Hashfunktionen sollte man immer eine Selbstest-Funktion mit an Bord haben!
Testvektoren findet man auf Wikipedia.
Also ungefähr so:
Delphi-Quellcode:
procedure MD5Selftest;
begin
  if MD5DigestToStr(MD5String('Franz jagt im komplett verwahrlosten Taxi quer durch Bayern')) <>
    'a3cca2b2aa1e3b5b3b5aad99a8529074{bitte alles in Goßbuchstaben, bin gerade zu tippfaul} then
    raise Exception.Create('MD5 Selftest failed');
end;
fork me on Github
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#2

AW: md5.pas bringt anderes Ergebnis als php md5

  Alt 9. Sep 2013, 15:34
{bitte alles in Goßbuchstaben, bin gerade zu tippfaul}
Dafür vergleiche ich Hashes gerne per AnsiCompareText, dann ist das upper/lowercase egal (nicht weil ich keine Konventionen bzgl. des cases hätte, sondern weil es spätestens beim Testen anderer Algo-Implementierungen dann doch wieder übersehen wird und zu Fehlersuche führt).
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: md5.pas bringt anderes Ergebnis als php md5

  Alt 9. Sep 2013, 19:07
Hatte letztens ein ähnliches Problem. Eine MD5 Unit, die ich vor Ewigkeiten mal hier im Forum gefunden hatte, hat unter XE4 auf einmal mehr oder weniger zufällige Hashs produziert. Konnte das Problem leider nicht identifizieren, aber vermute, dass es am eingestreuten Assembler Code lag.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

AW: md5.pas bringt anderes Ergebnis als php md5

  Alt 10. Sep 2013, 04:20
Bei Hashfunktionen sollte man immer eine Selbstest-Funktion mit an Bord haben!
Testvektoren findet man auf Wikipedia.
Also ungefähr so:
Delphi-Quellcode:
procedure MD5Selftest;
begin
  if MD5DigestToStr(MD5String('Franz jagt im komplett verwahrlosten Taxi quer durch Bayern')) <>
    'a3cca2b2aa1e3b5b3b5aad99a8529074{bitte alles in Goßbuchstaben, bin gerade zu tippfaul} then
    raise Exception.Create('MD5 Selftest failed');
end;
Für solche Tests sind eigentlich Assertions prädestiniert – das ist schöner als if und raise Exception.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: md5.pas bringt anderes Ergebnis als php md5

  Alt 10. Sep 2013, 07:53
Für solche Tests sind eigentlich Assertions prädestiniert – das ist schöner als if und raise Exception.
Kommt drauf an...
Hier habe ich if und raise verwendet, weil ich möchte dass die Prüfung auch in der Releaseversion der Software stattfindet um Manipulationen an sicherheitsrelevanten Funktionen vorzubeugen.
Ansonsten hast du natürlich recht.
fork me on Github
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: md5.pas bringt anderes Ergebnis als php md5

  Alt 10. Sep 2013, 08:46
Hier habe ich if und raise verwendet, weil ich möchte dass die Prüfung auch in der Releaseversion der Software stattfindet um Manipulationen an sicherheitsrelevanten Funktionen vorzubeugen.
Man lernt nie aus.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.675 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: md5.pas bringt anderes Ergebnis als php md5

  Alt 10. Sep 2013, 08:48
"Sicher" ist MD5 aber nicht mehr
Sven Harazim
--
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#8

AW: md5.pas bringt anderes Ergebnis als php md5

  Alt 10. Sep 2013, 09:33
"Sicher" ist MD5 aber nicht mehr
Das kommt auf den Anwendungszweck an - und wen ich den Anwendungszweck hier zu erraten versuche (Passwort-Hash?), wäre ein Hinweis auf die Nutzung von Salts angebrachter (und daher hiermit genannt) - denn dank Rainbow Tables wäre hier auch ein SHA-2 nicht wesentlich "sicherer" als MD5.

Geändert von CCRDude (10. Sep 2013 um 09:33 Uhr) Grund: "wesentlich" eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#9

AW: md5.pas bringt anderes Ergebnis als php md5

  Alt 11. Sep 2013, 11:05
Nutzung von Salts angebrachter (und daher hiermit genannt) - denn dank Rainbow Tables wäre hier auch ein SHA-2 nicht wesentlich "sicherer" als MD5.
Auch wenn wir etwas vom Thema abkommen: Klassische Hashfunktionen ermöglichen Brute-Force-Angriffe, da sie zu effizient sind; deshalb wird meist zu Algorithmen wie bcrypt oder PBKDF2 geraten.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (11. Sep 2013 um 11:07 Uhr)
  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 23:24 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 by Thomas Breitkreuz