Suchen:
  • Impressum
  • Kontakt
  • Startseite
Effekt! Softwareentwicklung
  • Themen

    • Suchmaschinenoptimierung (SEO)
    • Usability
    • Projektplanung
    • Unterschiede
    • 10 Tipps zur Webseitenerstellung
  • Tutorials

    • Datum mit PHP
    • Uhrzeit mit PHP/AJAX
    • Feiertage ermitteln mit PHP
    • Arrays sortieren
    • Arrays und Iteratoren
    • Paypal-Buttons integrieren
    • Google Maps einbinden
    • Zufallsbanner mit Javascript
    • Effekte mit CSS3
    • Herausfahrendes Fenster mit jQuery
  • Tools

    • MD5-Hash-Generator
Startseite
MD5-Hash-Generator

MD5-Hash-Generator

Zeichenketten lassen sich durch verschiedene Algorithmen verschlüsseln (generieren), z.B. durch den 128-Bit-Hash MD5 (Message Digest Algorithm 5).

Herausfahrendes Fenster mit jQuery
 
Suchmaschinenoptimierung (SEO)

Zeichenkette als MD5-Hash generieren

Geben Sie eine beliebige Zeichenkette ein:

Wofür braucht man so etwas?

Mit Hash-Werten lassen sich z.B. Passwörter auf eine relativ sichere Weise vergleichen. Es geht also in erster Linie darum sensible Daten zu schützen und einen Hacker-Angriff (SQL-Injection) zu erschweren. Ein Passwortvergleich könnte in etwa so aussehen:

Compare Userdata

Die Funktion compare_userdata() sucht in der Datenbank nach einem Nutzer, dessen 'username' = der eingegebene Benutzername ($this->username) und 'password' = das eingegebene Passwort ($this->password) sein soll. Wird kein Datensatz gefunden, in welchem beide Angaben mit den Eingabedaten übereinstimmen, wenn also mysql_num_rows($this->sql) == 0 ist (Zeile 44), dann war mindestens eine der beiden Eingaben falsch.

Interessant sind jetzt die Zeilen 42 und 43, denn hier lässt sich das Prinzip gut erkennen. In Zeile 42 wird der gespeicherte Benutzername aus der Datenbank durch die MySQL-Funktion MD5() direkt in der Abfrage generiert, ebenso der eingegebene Benutzername, allerdings nicht durch MySQL, sondern durch die PHP-Funktion md5(). Jetzt lassen sich beide verschlüsselten Strings vergleichen. Das Passwort dagegen ist bereits in der Datenbank verschlüsselt gespeichert (Passwörter sollten generell so hinterlegt sein). Also muss in der Abfrage jetzt nur das eingegebene Passwort generiert werden, damit ein Vergleich möglich ist.

Falls es erforderlich sein sollte das Passwort zu ändern, ließe es sich so bewerkstelligen:

Compare Userdata

Das neu eingegebene Passwort wird mit der PHP-Funktion md5() generiert (Zeile 51) und in diesem Zustand in der Datenbank gespeichert. Die Benutzer-ID aus der Datenbank und die mitgelieferte ID müssen wieder zuerst verschlüsselt und anschließend verglichen werden (Zeile 52).

Eine 100%ige Sicherheit bietet MD5 zwar nicht, aber zumindest für Webseiten, deren Inhalt nicht unbedingt zu sehr aufwändigen Hacker-Angriffen motivieren, sollte dieser Algorithmus, welcher mit 128 Bit bis zu 4.294.967.296 (2 hoch 32) verschiedene Konstellationen generieren kann, einen passablen Schutz bieten.

Hash-Algorithmus SHA-1

Es gibt neben MD5 noch eine Reihe anderer Möglichkeiten Werte zu verschlüsseln, z.B. über SHA-1 (Secure Hash Algorithm). Dieser enthält sogar im Gegensatz zu MD5 einen 160-Bit-Hash und sollte ursprünglich als kollisionssicher gelten, allerdings ist das bereits durch effektive Kollisionsberechnungen widerlegt worden. Somit gilt der Einsatz des SHA-1-Algorithmus ebenfalls nicht als 100% sicher.

Verwendete Technologien

PHP - MySQL
Herausfahrendes Fenster mit jQuery
nach oben
Suchmaschinenoptimierung (SEO)
© 2010-2011 Effekt! - Softwareentwicklung | Letzte Aktualisierung: 15.12.2011 - 15:40 Uhr