Wie verschlüsseln die vorhandene Spalte in der mysql Tabelle?
Habe ich die Tabelle mit dem Passwort-Feld ist ein nur-text. Nun, ich möchte, um zu verschlüsseln das Feld. wie zu tun ?
- überprüfen Sie in diesem encrypt-a-specific-column
- Sie meinte entschlüsseln der verschlüsselten Feld??
- Nein, ich möchte verschlüsseln, die vorhandenen Feld
- siehe meine Antwort... Hoffe, das hilft...
- Meinst du verschlüsseln, so können Sie das nur-text wieder für alle Zeilen, wenn Sie wissen, den Schlüssel, oder meinst du ein one-way-hash, damit Sie vergleichen können Benutzer Eingang zu den gespeicherten Wert?
Du musst angemeldet sein, um einen Kommentar abzugeben.
MySQL hat eine Breite Palette von integrierten Verschlüsselungs-Funktionen, finden Sie eine detaillierte übersicht hier.
Möchten Sie vielleicht einen Blick auf z.B. AES_DECRYPT() und AES_ENCRYPT().
encryption_key
ist der Schlüssel für die Verschlüsselung, durch die Sie entschlüsseln können...Nehmen backup Ihrer Datenbank (nur Daten) als csv-Datei. Verwenden Sie die folgende Abfrage zur Aktualisierung der vorhandenen Felder mit Schlüssel:
Hoffe, es wird Ihr problem lösen.
können Sie md5 oder password, aber Vorsicht, der Regenbogen-Tabellen
Einige ppl nur verschlüsseln Sie das Kennwort ein Weg, und fügen Sie einige dumme text, I. E
können sagen, dass Sie verschlüsseln möchten "Hallo" und Sie gehen, um mit MD5, das Sie tun werden:
dann, wenn Sie überprüfen möchten-Sitzung, die Sie machen einfach nur das Spiel zwischen dem Passwort, dass der Benutzer in das Eingabefeld des Formulars:
if (md5("dumptext". Benutzer(password_input))== Feld in Datenbank, dann die Sitzung AUF!. wenn nicht Ablehnen
hier ist das Mysql-Passwort verschlüsseln von Informationen, gibt es verschiedene Optionen, das ist bis zu Ihnen
Machen Sie ein update auf das Feld Passwort ändern das Passwort zu Hashen. Sie konnte SHA1-für diese. Sie möchten hash das Passwort nicht verschlüsseln.
Beim überprüfen des mitgelieferten Passwort korrekt ist, müssen Sie den hash des vom Benutzer angegebenen Wert und mit dem vergleichen, was in der Datenbank ist im Feld.
Beim Hashen des Passworts, die Sie verwenden möchten, ein Salz irgendeiner Art. Idealerweise sollte dies anders sein für jeden Benutzer. Eine ähnliche Frage enthalten gute Antworten: Der Secure-hash-und salt für PHP Passwörter
Warum gehst du nicht mit einem column-level encryption-Lösung?
Als ich herausfand, vor kurzem, gibt es viele Nachteile im MySQL-interne Verschlüsselung Funktionen.
Ich habe diese Informationen aus einem blog, bietet mysql Verschlüsselung freeware.
http://www.mydiamo.com/index.php/mdblog/item/24-why-applying-mysql-internal-encryption-functions-only-is-not-enough
Wenn Sie versuchen, verschlüsseln Sie das Kennwort-Feld nur, vielleicht ein column-level encryption-Lösung ist der beste Weg, um Ihnen Sicherheit.
(Column-level encryption) ist eine Methode der Datenbank-Verschlüsselung, in dem Sie die Informationen in jede Zelle (oder Datenfeld) in einer bestimmten Spalte das gleiche Kennwort für den Zugriff, Lesen und schreiben Zwecke.-aus WhatIs.com-)
MyDiamo, das ist die freeware, die ich Sprach oben, scheint zu sein, bequem zu bedienen. Vielleicht können Sie es ausprobieren.
Was mich stolpern auf deinen post war, weil ich hatte das gleiche problem, das Sie hatte, aber irgendwie habe ich es herausgefunden.
Ich hatte zunächst eine Tabelle erstellt und die Daten eingefügt in Sie, ohne zu verschlüsseln: später erfuhr ich, dass es eine Möglichkeit zum verschlüsseln von Daten in mysql, aber es ist nur mit Hilfe einer Abfrage und die md5(), sha(), sha1(), sha2() und vielleicht auch mehr.
Dies ist, was ich getan habe.
Erstellen Sie eine weitere Tabelle, die ist identisch mit deiner aktuellen Tabelle (aber mit einem anderen Tisch mit anderen Namen natürlich) .
Nun beachten Sie, dass diese sind zwei verschiedene Tabellen (users und users_new) diese Tabellen identische Spaltennamen und Eigenschaften. Der Befehl kopiert den Wert der Benutzer-id und eines verschlüsselten (mit dem sha1 () - Funktion) Passwort in der Tabelle user.
Denken Sie daran, dass die Spalte Kennwort des Typs VARCHAR(40), weil die entschlüsselte Zeichen Länge ist 40bytes(Zeichen) lang ist.
Ich hoffe, das war hilfreich. Veröffentlichen Sie Kommentar oder Hinterlasse eine Antwort.
mehr Gnade zu Ihnen.
Gibt es 2 Philosophien zum verschlüsseln von Daten:
Die 1-Weg-Philosophie
verschlüsselt oder hashes der Daten mit einem Algorithmus, so dass die ursprüngliche Zeichenfolge nicht erreicht werden können, zurück. Diese kann getan werden, mithilfe von MD5-oder SHA1.
insert into Benutzer(Benutzername,Passwort) values ('userLogin', md5('meinpasswort') );
update Benutzer set Passwort = sha1('myOtherPassword') where user='userLogin';
Den Weg der Validierung dieser ist durch die Anwendung der Methode (sha1 oder md5) auf das Passwort gibt der Nutzer und die daraus resultierende hash wird verglichen mit dem speichern in der DB.
Die Bidirektionale Philosophie
verschlüsselt die Daten mit einem Algorithmus, welcher sein können codiert oder decodiert. Diese kann getan werden, mit AES_ENCRYPT() und AES_DECRYPT().
insert into Benutzer (Benutzername,Passwort) values ('userLogin', AES_ENCRYPT('myDecodeablePass', 'myEncryptionKey'));
Den Weg der Validierung dieser, ist mit der Entschlüsselung der gespeicherten Zeichenfolge und vergleicht das Ergebnis mit dem Kennwort, die der Benutzer bereitgestellt
Bitte beachten Sie in diesem Weg, einen man-in-the-middle-Angriff könnte der Kompromiss, den Schlüssel der Verschlüsselung und damit zu riskieren, alle Passwörter, es sei denn, es ist eine pro-Benutzer-key.
Hinweis:
Um zu vermeiden, die rainbow-Tabellen (oder vorberechnete hash-Tabellen) es wird empfohlen, das einfügen eines random-non-Wort aus dem Wörterbuch zu dem string, der verschlüsselt werden... da viele Anwender verwenden eher einfache Passwörter wie 'Passwort' oder '123456'
Erste update der Spalte, die verschlüsselt zu sein
varbinary
geben. Diese ermöglichen das speichern von verschlüsselten Werte.Dann aktualisieren Sie die Tabelle zum speichern der verschlüsselten Wert in den Ort, wie oben gezeigt. Dies wird speichern Sie den verschlüsselten Wert in der Tabelle.
Um diesen Wert anzuzeigen, verwenden Sie die folgende Abfrage:
Oben
SQL
Abfragen wurden getestet aufMySQL
.