Passwort in MySQL-Datenbank speichern

Haider Ali 15 Februar 2024
  1. Was ist Hashing
  2. Verwenden Sie MD5 (str), um Passwörter in MySQL zu speichern
  3. Verwenden Sie SHA1 (str), um Passwörter in MySQL zu speichern
  4. Verwenden Sie die PASSWORD-Funktion, um Passwörter in MySQL zu speichern
  5. Verwenden Sie die ENCRYPT-Funktion, um Passwörter in MySQL zu speichern
Passwort in MySQL-Datenbank 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:

  1. MD5 (str)
  2. SHA1 (str)
  3. PASSWORT
  4. 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.

Kundentisch

Wir fügen einige Werte ein und erstellen mit md5 ein Hash-Passwort.

Einfügen in Clients 1 mit md5

Einfügen in Clients 2 mit md5

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.

Verwenden Sie md5, um Daten zu erhalten 1

Verwenden Sie md5, um Daten zu erhalten 2

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.

mit sha1 in Clients einfügen

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:

  1. SHA224 - Es konvertiert die 224-Bit-Prüfsumme der Daten und gibt eine Zeichenfolge mit 56 Hexadezimalziffern zurück.
  2. SHA256 - Es konvertiert die 256-Bit-Prüfsumme der Daten und gibt eine Zeichenfolge mit 64 Hexadezimalziffern zurück.
  3. SHA384 - Es konvertiert die 384-Bit-Prüfsumme der Daten und gibt eine Zeichenfolge mit 96 Hexadezimalziffern zurück.
  4. 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:

  1. MySQL 5.6
  2. MySQL 5.5
  3. MySQL 5.1
  4. MySQL 5.0
  5. 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:

  1. 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 mit aes müssen Sie AES_ENCRYPT(str,key_str) schreiben.
  2. 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.

mit Verschlüsselung in Clients einfügen

Nachdem wir die AES_Encryption auf den Wert angewendet haben, können wir die Auswirkungen in der Tabelle sehen. Habe noch ein Beispiel:

Einfügen in Clients mit Verschlüsselung 2

Um unseren Wert abzurufen, müssten wir den richtigen Schlüssel bereitstellen; Andernfalls würden wir unsere gewünschten Daten nicht zurückbekommen.

aes-entschlüsseln

Hier haben wir den falschen Schlüssel eingefügt, und das Ergebnis ist unten.

falscher Schlüssel

Hier rufen wir unsere anderen Werte mit der rechten Taste ab.

richtiger Schlüssel

Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

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