verschiedene Verfahren und Informationen zum Thema Passwort-Verschlüsselung:



Ausgabe diverser php-Funktionen im rechten Bereich dieses Fensters

Zeichen
Download einer ausführbaren Datei zur
Verschlüsselung nach dem AES Advanced Encryption Standard.
  
Informationen zur Verschlüsselung mit php-Funktionen php-Funktionen:
Informationen zur Verschlüsselung mit crc32 crc32:  
Informationen zur Verschlüsselung mit str_rot13 str_rot13:  
Informationen zur Verschlüsselung mit crypt crypt (ohne Salz)¹:
Informationen zur Verschlüsselung mit crypt crypt (mit Salz)¹:
Informationen zur Verschlüsselung mit crypt crypt (mit Salz IN)¹:
Informationen zur Verschlüsselung mit md5 md5:  
Informationen zur Verschlüsselung mit Zufall Zufall:  
Informationen zur Verschlüsselung mit mysql-Funktionen mysql-Funktionen:
Informationen zur Verschlüsselung mit mysql-password() password():  
Informationen zur Verschlüsselung mit mysql-encrypt() encrypt(ohne Salz)¹:  
Informationen zur Verschlüsselung mit mysql-encrypt() encrypt(mit Salz)¹:  
Informationen zur Verschlüsselung mit mysql-encrypt() encrypt(mit Salz IN)¹:  
Informationen zur Verschlüsselung mit mysql-md5() md5():  
Einen Check der Passwort-Qualität gibt es
z.B. bei passwortcheck.datenschutz.ch.



php-Tools: Informationen zu den verschiedenen Verfahren und Optionen der Passwort-Verschlüsselung

Die mit ¹ gekennzeichneten Funktionen werden explizit als irreversible Funktionen beschrieben, für die es keine Funktionen gibt, die eine Entschlüsselung ermöglichen.

Verschlüsselungen mit crypt() wurden in den frühen Jahren des Web zum verschlüsselten Ablegen von Passwörtern in .htuser-Dateien (Verzeichnis-Schutz der Apache-Webserver-Software) empfohlen.

Seit ca. 2013 soll beim Verzeichnis-Schutz das Tool "htpasswd" verwendet werden (SelfHtml, Wikipedia).

  Verschlüsselung mit php-Funktionen:
 
crc32: Erzeugt ein zyklisch redundantes Prüfsummen-Polynom mit einer Länge von 32-bit.
Wird üblicherweise verwendet, um die Integrität übertragener Daten zu überprüfen.
 
str_rot13: Die ROT13-Verschlüsselung verschiebt einfach jeden einzelnen Buchstaben um 13 Stellen innerhalb des Alphabetes, wobei Zeichen, die keine Buchstaben sind, unberührt bleiben.
 
crypt: Veraltet!
Ein-Weg-Verschlüsselung (sog. 'hashing', es gibt keine Entschlüsselungsfunktion!)
Erzeugt eine verschlüsselte Zeichenkette mit Hilfe des Standard Unix DES-basierenden Verschlüsselungs-Algorithmus oder eines alternativen Algorithmus', den das Betriebssystem bereitstellt.
Die Verschlüsselung wird durch Angabe einer zusätzlichen Zeichenkette (Salz) gesteuert.
Wenn kein Salz bereitgestellt wird, wird php eine Standard-2-Zeichen-Zeichenkette verwenden, solange der Standard-Verschlüsselungstyp des benutzten Systems nicht MD5 ist. Ansonsten wird ein zufälliges, MD5-kompatibles Salz erzeugt.
Salz in der Suppe:
Zur Erhöhung der Sicherheit wird eine zusätzliche Zeichenkette (Salz) verwendet, die den Verschlüsselungs-Algorithmus beeinflußt.
  • Ohne angegebenes Salz wird eine selbst generierte Salz-Zeichenkette verwendet (wie oben beschrieben).
  • Bei der Option mit Salz wird das angegebene Passwort verschlüsselt und diese Zeichenkette als Salz eingesetzt.
  • Bei mit Salz IN wird die Zeichenkette "IN" als Salz benutzt.

md5: Berechnet eine MD5-'hash'-Zeichenkette gemäß folgender Beschreibungen: RSA Data Security, Inc. MD5 Message-Digest Algorithm.
Der hash-String ist eine 32-stellige, hexadezimale Nummer.
 
Zufall: Eine selbstgeschriebene Funktion erzeugt entsprechend der angegebenen Anzahl eine Reihe zufälliger Zeichen.
Aus Gründen der Darstellbarkeit am Bildschirm werden die sog. 'nicht druckbaren' Zeichen (Ascii-Werte 0-31) nicht verwendet.
Um Problemen mit länderspezifischen Zeichensätzen und den entsprechenden Einstellungen Ihres Browser aus dem Wege zu gehen, können Sie die Option 'nur darstellbare Ascii-Zeichen' wählen. Sie beschränkt den Auswahlbereich, aus dem die Zufallszeichen ermittelt werden, auf den gemeinsamen Bereich der sog. ISO-8859-Zeichensätze.
Aus einer alten selfhtml-Dokumentation:
Bei allen Zeichensätzen sind die ersten 128 Zeichen, also die Zeichen mit den Werten 0 bis 127, identisch mit dem ASCII-Zeichensatz.
Das hat den Vorteil, dass die üblichen lateinischen Groß- und Kleinbuchstaben, die arabischen Ziffern und die üblichen Sonderzeichen
wie Satzzeichen oder kaufmännische Zeichen in all diesen Zeichensätzen immer zur Verfügung stehen.

Wenn Sie die Option nicht wählen, erhöhen Sie die Sicherheit des Passwortes, handeln sich aber evtl. Probleme ein, wenn Sie dieses Passwort an verschiedenen Computern eingeben müssen (z.B. im Auslands-Urlaub).

nach oben

 

  Verschlüsselung mit mysql-Funktionen:
 
password: Ermittelt nach einem MySql-eigenen Verfahren ein verschlüsseltes Passwort, wie es z.B. typischerweise im Feld 'password' der MySql-Tabelle 'user' hinterlegt wird, die Datenbank-bezogene Benutzer-Berechtigungen verwaltet. Der Verschlüsselungsvorgang ist irreversibel und nicht identisch mit der Art und Weise, wie UNIX-Passwörter z.B. in einer Passwort-Datei verschlüsselt abgelegt werden.
 
encrypt: Verwendet einen Unix-gemäßen Aufruf von crypt().
 
md5: Errechnet eine MD5 128 Bit Prüfsumme für die angegebene Zeichenkette.
Der Wert wird als 32-stellige Hexadezimal-Zahl zurückgegeben, die z.B. als Hash-Schlüssel verwendet werden kann.
 
Verschlüsselungsfunktionen, die innerhalb von MySql ab der Version 4.0.2 zur Verfügung stehen:
 
sha: Ermittelt eine SHA1 160 bit Prüfsumme, wie in RFC 3174 (Secure Hash Algorithm) beschrieben.
Die Rückgabe erfolgt als 40-stellige Hexadezimal-Zahl. Außer der Verwendung als Hash-Schlüssel ist die Funktion ebenfalls als kryptographisch sicher für das Speichern von Passwörtern geeignet.
 
aes_encrypt / aes_decrypt: Diese Funktionen erlauben Ver- und Entschlüsselung von Daten nach dem offiziellem AES (Advanced Encryption Standard, 2002) Algorithmus, der früher als Rijndael bekannt war.
Folgen Sie dem Link zur Rijndael-Downloadseite, um weitere Informationen zu erhalten.
Die Verschlüsselung benutzt einen 128 bit Schlüssel, der durch Eingriffe in den Quelltext leicht auf eine Länge von 256 bit erweitert werden kann. Die Entwickler von MySql haben sich mit Blick auf die 4.0.2-Version für den 128 bit langen Schlüssel entschieden, den sie als "much faster" und "usually secure enough" bezeichnen.
Zur Erhöhung der Sicherheit gibt es ein Beispiel, das zeigt, wie die Übertragung des Schlüssels über die Verbindung durch folgende SQL-Anweisung vermieden werden kann (der Schlüssel wird in einer Server-seitigen Variablen gespeichert):
SELECT @password:="my password";
INSERT INTO t VALUES (1,AES_ENCRYPT("text",@password));

nach oben

zur Startseite dieses Webangebotes zur Daten- und Medientechnik-Seite: Sicherheit zur Daten- und Medientechnik-php-Tools-Seite