Passwort in MySQL-Datenbank speichern
- Was ist Hashing
-
Verwenden Sie
MD5 (str)
, um Passwörter in MySQL zu speichern -
Verwenden Sie
SHA1 (str)
, um Passwörter in MySQL zu speichern -
Verwenden Sie die
PASSWORD
-Funktion, um Passwörter in MySQL zu speichern -
Verwenden Sie die
ENCRYPT
-Funktion, um Passwörter in MySQL zu speichern
Wenn Sie keine Ahnung haben, wie man ein Passwort in der MySQL-Datenbank speichert, sind Sie hier genau richtig. In diesem Handbuch erfahren Sie, wie Sie Hash-Passwörter in einer MySQL-Datenbank speichern, die verschiedenen Techniken und ihre spezifischen Methoden zum Speichern des Hash-Passworts.
Was ist Hashing
Beim Hashing wird eine bestimmte Anzahl von Schlüsseln oder eine Zeichenfolge in einen kürzeren Wert mit fester Länge umgewandelt. Beim Hashing bedeutet, dass die Daten mit fester Größe eine beliebige Anzahl von Schlüsseln oder Zeichenfolgen, die in Hash-Zeichen konvertiert werden, dieselbe Größe haben.
Eine weitere Eigenschaft des Hashings ist, dass es sich um einen nicht abrufbaren Prozess handelt, was bedeutet, dass es keine Möglichkeit gibt, den ursprünglichen Datenwert abzurufen, wenn ein Wert in einen Hash umgewandelt wurde.
In MySQL werden verschiedene Hashfunktionen verwendet; das sind die folgenden:
MD5 (str)
SHA1 (str)
PASSWORT
VERSCHLÜSSELN
Verwenden Sie MD5 (str)
, um Passwörter in MySQL zu speichern
md5
ist eine Funktion, die eine 128-Bit-Datenprüfsumme nimmt und sie als eine Zeichenfolge mit 32 Hexadezimalziffern zurückgibt.
Zuerst erstellen wir in unserer Datenbank eine Tabelle clients
und zwei Felder dieser Tabelle mit dem Datentyp varchar
.
Wir fügen einige Werte ein und erstellen mit md5
ein Hash-Passwort.
Wie Sie sehen können, hat die Funktion md5
unsere beiden Eingabewerte in 32 Hex-Ziffern umgewandelt.
Lassen Sie uns zeigen, was wir zuvor gemeint haben, als wir sagten, dass es sich um eine nicht abrufbare Funktion handelt.
Wie Sie sehen können, mussten wir die Funktion md5
für unsere beiden Werte verwenden, um unsere Daten zurückzubekommen; Andernfalls wurde ein Fehler generiert.
Verwenden Sie SHA1 (str)
, um Passwörter in MySQL zu speichern
sha1
ist eine solche Hash-Funktion, die einen viel größeren Bereich hat als die vorherige md5
-Funktion. Es wandelt die 160-Bit-Datenprüfsumme in eine Zeichenfolge mit 40 Hexadezimalziffern um.
Hier ein Beispiel zum besseren Verständnis.
Sie hätten jetzt eine ziemliche Vorstellung davon, dass diese beiden Hash-Funktionen funktionieren und wodurch sie sich voneinander unterscheiden. Eine andere Sache von sha1
ist, dass es viel bessere Versionen gibt, die eine viel größere Reichweite bieten.
Diese sind wie folgt:
SHA224
- Es konvertiert die 224-Bit-Prüfsumme der Daten und gibt eine Zeichenfolge mit 56 Hexadezimalziffern zurück.SHA256
- Es konvertiert die 256-Bit-Prüfsumme der Daten und gibt eine Zeichenfolge mit 64 Hexadezimalziffern zurück.SHA384
- Es konvertiert die 384-Bit-Prüfsumme der Daten und gibt eine Zeichenfolge mit 96 Hexadezimalziffern zurück.SHA512
- Es konvertiert die 512-Bit-Prüfsumme der Daten und gibt eine Zeichenfolge mit 128 Hexadezimalziffern zurück.
Verwenden Sie die PASSWORD
-Funktion, um Passwörter in MySQL zu speichern
Die Funktion password
generiert ein gehashtes Passwort aus einer Klartext-Passwortzeichenfolge. Die Funktion Passwort
würde im Falle eines NULL-Arguments NULL
zurückgeben.
Lassen Sie uns ein paar Beispiele für Ihr besseres Verständnis machen.
SELECT
PASSWORD('xyz');
Ausgang:
6gd7gb67shy87865
Versuchen wir es jetzt mit einer Zeichenfolge, die Ziffern und Zeichen enthält.
SELECT
PASSWORD('xyz123');
Ausgang:
54fg56gs32sgi3862
Eine weitere wichtige Sache bezüglich der Funktion Passwort
ist, dass sie nicht alle MySQL-Versionen unterstützt. Die unterstützten Versionen sind:
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
Verwenden Sie die ENCRYPT
-Funktion, um Passwörter in MySQL zu speichern
Es ist eine Umwandlung einer Zeichenkette in schwer lesbare Binärdaten. Die verschlüsselten Daten können später leicht entschlüsselt werden.
Ein wichtiger Hinweis ist, dass der Datentyp der Spalte BLOB
sein sollte.
Für Verschlüsselung
werden zwei Arten von Funktionen verwendet:
AES
(Advanced Encryption Standards
) - Es verwendet einen offiziellen AES-Algorithmus, der eine Verschlüsselung mit einem 128-Bit-Schlüssel gewährleistet. Für die Verschlüsselung mitaes
müssen SieAES_ENCRYPT(str,key_str)
schreiben.DES
(Data Encryption Standards
) verwendet den Triple-DES-Algorithmus. Voraussetzung für diese Verschlüsselung ist, dass MySQL mit SSL-Unterstützung konfiguriert ist.
Zu bedenken ist hier, dass die Funktion Encrypt
nur für die Unix-Betriebssysteme verfügbar ist. Für andere Betriebssysteme müssten wir also AES- oder DES-Verschlüsselung verwenden.
Um Sie mit dieser Technik vertraut zu machen, lassen Sie uns in die Funktion Verschlüsselung
eintauchen.
Nachdem wir die AES_Encryption
auf den Wert angewendet haben, können wir die Auswirkungen in der Tabelle sehen. Habe noch ein Beispiel:
Um unseren Wert abzurufen, müssten wir den richtigen Schlüssel bereitstellen; Andernfalls würden wir unsere gewünschten Daten nicht zurückbekommen.
Hier haben wir den falschen Schlüssel eingefügt, und das Ergebnis ist unten.
Hier rufen wir unsere anderen Werte mit der rechten Taste ab.
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn