MySQL- Tabellenfeld verschlüsseln - sha256
Guten Tag liebe Gemeinde,
ich brauche gerade mal Hilfe. Ich möchte gerne innerhalb einer MySQL-Tabelle ein bestimmtes Feld mit sha256 verschlüsseln.
Bevor es in dem Feld steht, ist es unverschlüsselt. Es soll nur verschlüsselt werden, wenn es noch nicht verschlüsselt ist. Gibt es da eine Möglichkeit?
Beste Grüße.
ich brauche gerade mal Hilfe. Ich möchte gerne innerhalb einer MySQL-Tabelle ein bestimmtes Feld mit sha256 verschlüsseln.
Bevor es in dem Feld steht, ist es unverschlüsselt. Es soll nur verschlüsselt werden, wenn es noch nicht verschlüsselt ist. Gibt es da eine Möglichkeit?
Beste Grüße.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3244013695
Url: https://administrator.de/forum/mysql-tabellenfeld-verschluesseln-sha256-3244013695.html
Ausgedruckt am: 22.12.2024 um 16:12 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
SHA ist eine Haschfunktion. Also kein entschlüsseln mehr.
Aber ja das kann MySQL problemlos.
https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#functi ...
Es kennt aber auch Passwort Verschlüsselung.
https://dev.mysql.com/doc/refman/5.6/en/password-hashing.html
Das Handbuch ist dein Freund
SHA ist eine Haschfunktion. Also kein entschlüsseln mehr.
Aber ja das kann MySQL problemlos.
https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#functi ...
Es kennt aber auch Passwort Verschlüsselung.
https://dev.mysql.com/doc/refman/5.6/en/password-hashing.html
Das Handbuch ist dein Freund
SHA ist eine Haschfunktion
Aufpassen damit du nicht in den Fokus des Drogenbeauftragten des Forums gerätst!!! https://en.wiktionary.org/wiki/hash
Moin.
Eine UPDATE-Query ... einmalig ausführen und ab dann nur noch per Default die Hashes rein schreiben ?!
Ich würde aber an deiner Stelle in die Hashes zusätzlich noch ein SALT mit reinpacken damit es auch vorberechnete Rainbowtables schwerer haben.
Des weiteren sollte man die Hashes am besten gleich als Blob oder binary in einer separaten Spalte sichern (bswp. mit UNHEX()), das ist wesentlich effizienter als sie als VARCHAR abzuspeichern und man vermeidet damit so manche Fallen, siehe Hinweise am Anfang der folgenden Seite
https://dev.mysql.com/doc/refman/5.6/en/encryption-functions.html#functi ...
Mögliches Beispiel
http://www.sqlfiddle.com/#!9/2c921d/1/0
Grüße Uwe
Zitat von @freshman2017:
Aber wie kann ich am besten den Wert aus der Spalte Passwort auslesen, verschlüsseln und wieder zurück zu schreiben.
Ein Hash ist wie schon erwähnt wurde, keine Verschlüsselung!Aber wie kann ich am besten den Wert aus der Spalte Passwort auslesen, verschlüsseln und wieder zurück zu schreiben.
Eine UPDATE-Query ... einmalig ausführen und ab dann nur noch per Default die Hashes rein schreiben ?!
UPDATE tabellexyz SET passwort = SHA2(passwort,256);
Des weiteren sollte man die Hashes am besten gleich als Blob oder binary in einer separaten Spalte sichern (bswp. mit UNHEX()), das ist wesentlich effizienter als sie als VARCHAR abzuspeichern und man vermeidet damit so manche Fallen, siehe Hinweise am Anfang der folgenden Seite
https://dev.mysql.com/doc/refman/5.6/en/encryption-functions.html#functi ...
Mögliches Beispiel
http://www.sqlfiddle.com/#!9/2c921d/1/0
Grüße Uwe
Ich würde auch das gehashte bzw. verschlüsselte Passwort in einer eigenen Spalte ablegen, ansonsten müsstest du zumindest die Information nachhalten ob das Passwort schon konvertiert wurde oder nicht. Du kannst im Nachhinein unmöglich sagen ob die Zeichenkette 0xCA74E5FE75654735D3B8D04A7BDF5DCDD06F1C6C2A215171A24E5A9DCB28E7A2 das vom Benutzer eingegebene Passwort ist oder nicht.
Zitat von @ukulele-7:
0xCA74E5FE75654735D3B8D04A7BDF5DCDD06F1C6C2A215171A24E5A9DCB28E7A2 das vom Benutzer eingegebene Passwort ist oder nicht.HEY! Woher kennst Du mein Passwort?