Heim > Artikel > Backend-Entwicklung > mysql - Wie stellen PHP-binärverschlüsselte Daten die Eindeutigkeit der Daten sicher?
Die sensiblen Benutzerdaten in der Unternehmensdatenbank müssen in binären Chiffretext verschlüsselt und im MySQL-Blob-Typ-Feld gespeichert werden. Jetzt finde ich, dass es schwierig ist, die Eindeutigkeit der Benutzerdaten sicherzustellen, da es sich anscheinend um einen Blob-Typ handelt Das Feld kann weder direkt logischen Operationen unterzogen werden, noch kann es den gesamten Chiffretext in der Tabelle auslesen, entschlüsseln und dann logische Operationen ausführen
Die sensiblen Benutzerdaten in der Unternehmensdatenbank müssen in binären Chiffretext verschlüsselt und im MySQL-Blob-Typ-Feld gespeichert werden. Jetzt finde ich, dass es schwierig ist, die Eindeutigkeit der Benutzerdaten sicherzustellen, da es sich anscheinend um einen Blob-Typ handelt Das Feld kann weder direkt logischen Operationen unterzogen werden, noch kann es den gesamten Chiffretext in der Tabelle auslesen, entschlüsseln und dann logische Operationen ausführen
Chiffretext MD5 basierend auf der Benutzer-ID zwischenspeichern
Ich denke, das sollte getan werden:
Wenn Sie neue Daten hinzufügen, führen Sie vor der Verschlüsselung ein MD5-Hashing des Klartextes durch und speichern Sie dann den Hashwert (natürlich muss auch der verschlüsselte Blob gespeichert werden)
Was die vorhandenen Daten betrifft, müssen Sie Zeit finden, alle MD5 zu entschlüsseln und dann den Hash-Wert zu speichern
Zur Bestimmung der Eindeutigkeit reicht es in der Regel aus, den Hashwert direkt zu ermitteln.
Es wird nicht empfohlen, MD5-Chiffretext zu verwenden – es sei denn, Sie können sicherstellen, dass dieselbe Klartextverschlüsselung immer denselben Chiffretext erzeugt. Allerdings wird der Chiffretext zumindest durch den Schlüssel beeinflusst. Nach dem Ändern des Schlüssels wird sich der Chiffretext definitiv ändern ... Darüber hinaus verfügen einige Verschlüsselungsmethoden selbst über zufällige Anfangsvektoren, und der verschlüsselte Chiffretext ist jedes Mal anders.
Direkte in MySQL integrierte Methode hex()