Angenommen, jede Zeile in einer Tabelle enthält Daten zu einem bestimmten Benutzer. Der Benutzer hat ein Passwort, um auf das System zuzugreifen.MySQL verschlüsselte Spalten
Wie kann ich eine Datenspalte mit InnoDB verschlüsseln, so dass niemand anderes als der Benutzer, der Daten ist, die Daten lesen kann? Ich dachte an etwas wie die Verwendung einer der MySQL-Verschlüsselungsfunktionen (zB AES) mit einem Schlüssel basierend auf einem Hash, der aus dem Passwort des Benutzers berechnet wurde.
Hat jemand irgendwelche Hinweise, wie ich das tun könnte? Bin ich auf dem richtigen Weg?
Eine der Antworten unter
Das Problem Kennwort des Benutzers zu modifizieren, beinhaltet die Umschlüsselung den Benutzerschlüssels mit Hilfe des neuen Passwortes, das gerade viel mehr nach vorne als die ganzen Reihe von Benutzerdaten erneut zu verschlüsseln das kann beliebig groß sein. Der Benutzerschlüssel bleibt über die Lebensdauer der Benutzerdaten im System gleich.
Wie hilft das? Angenommen, das Passwort lautet pass1. Und es gibt eine Reihe von Datensätzen, die mit einem daraus generierten Schlüssel verschlüsselt sind. Wenn der Benutzer das Passwort jetzt auf pass2 zurücksetzt, kann ich die Daten, die mit pass1 verschlüsselt wurden, nicht entschlüsseln. Im Falle, dass ein Benutzer das Passwort vollständig vergessen hat, sind alle seine verschlüsselten Daten verloren.
Meine nicht beziehen sich auf Ihre spezifische Situation, aber ich fand diesen Artikel hilfreich als eine gründliche Einführung in die Probleme beteiligt: http://i.amniels.com/mysql-database-encryption-using-public-private-keys –