Vorne geschriebenIch bin zuvor auf ein Problem gestoßen, nämlich die Verschlüsselung von MySQL-Informationen. Tatsächlich gibt es zwei Möglichkeiten, Daten zu verschlüsseln. Eine besteht darin, Daten außerhalb der Datenbank zu verschlüsseln und sie dann in der Datenbank zu speichern. Die zweite besteht darin, Daten innerhalb der Datenbank zu verschlüsseln. Der Unterschied zwischen beiden besteht darin, dass die zweite bequemer zu verwenden ist als die erste, denn wenn sie extern verschlüsselt ist, müssen Sie bei jeder Suche, die auf dem verschlüsselten Element basiert, zuerst die verschlüsselten Daten berechnen und sie dann in SQL einfügen. Die zurückgegebenen Daten sind ebenfalls verschlüsselte Daten, die extern entschlüsselt werden müssen. Bei der zweiten können der Originalwert und der verschlüsselte Schlüssel direkt in SQL übergeben werden und die Entschlüsselung kann auch in SQL abgeschlossen werden. Dadurch ist es nicht möglich, einige kombinierte SQL-Abfragen mit der ersten Methode abzuschließen, z. B. wenn das Abfragefeld das Ergebnis einer anderen Abfrage ist, da es einen externen Verschlüsselungsprozess durchlaufen muss. Zwei-Wege-VerschlüsselungEs gibt drei Methoden der bidirektionalen Verschlüsselung: CODIEREN/DEKODIERENEs werden zwei Werte übergeben, einer ist der zu verschlüsselnde Datensatz und der andere der Verschlüsselungs- und Entschlüsselungsschlüssel. Die Länge des Binärzeichens nach der Verschlüsselung entspricht der ursprünglichen Länge und wird im Blob-Typ gespeichert Felder vom Typ BLOB werden zum Speichern binärer Daten verwendet. In MySQL ist BLOB eine Typenreihe, die Folgendes umfasst: TinyBlob, Blob, MediumBlob, LongBlob. Der einzige Unterschied zwischen diesen Typen ist die maximale Größe der gespeicherten Datei. Vier MySQL BLOB-Typen. Typ Größe (Einheit: Bytes). TinyBlob maximal 255. Blob maximal 65 K. Mittel. Verschlüsselung: SELECT ENCODE('meinText','meinSchlüsselwort'); Ergebnis: mysql> SELECT ENCODE('meinText','meinSchlüsselwort'); +--------------------------------+ | ENCODE('meinText','meinSchlüsselwort') | +--------------------------------+ | ">¿¡È | +--------------------------------+ 1 Zeile im Satz (0,00 Sek.) Entschlüsselung: SELECT DECODE(ENCODE('meinText','meinSchlüsselwort'),'meinSchlüsselwort'); Ergebnis: mysql> SELECT DECODE(ENCODE('meinText','meinSchlüsselwort'),'meinSchlüsselwort'); +------------------------------------------------------+ | DECODE(ENCODE('meinText','meinSchlüsselwort'),'meinSchlüsselwort') | +------------------------------------------------------+ | mein Text | +------------------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) AES_ENCRYPT/AES_DECRYPTDieser Verschlüsselungsalgorithmus verwendet AES (Advanced Encryption Standard) und key_str-Verschlüsselung. Die Länge von key_str kann 256 Bit erreichen. Das verschlüsselte Ergebnis ist eine im Blob-Typ gespeicherte Binärzeichenfolge. Verschlüsselung: SELECT AES_ENCRYPT('meinText', 'meinSchlüsselstring'); Ergebnis: mysql> SELECT AES_ENCRYPT('meinText', 'meinSchlüsselstring'); +--------------------------------------+ | AES_ENCRYPT('meinText', 'meinSchlüsselstring') | +--------------------------------------+ | •› ¨í ƒðb áÒ9•j | +--------------------------------------+ 1 Zeile im Satz (0,00 Sek.) Entschlüsselung: Wählen Sie AES_DECRYPT (AES_ENCRYPT ('meinText', 'meinSchlüsselzeichenfolge'), 'meinSchlüsselzeichenfolge'); DES_ENCRYPT/DES_DECRYPTDiese Verschlüsselungsmethode verwendet 3DES (Triple Encryption Data Algorithm, was bedeutet, dass es eine Lücke in der Verschlüsselungsebene gibt). Sie können beim Verschlüsseln zwischen key_num und key_str wählen. Zum Beispiel: SELECT DES_ENCRYPT('meinText',5),DES_ENCRYPT('meinText','meinPasswort'); Die Ausgabe ist: mysql> SELECT DES_ENCRYPT('meinText',5),DES_ENCRYPT('meinText','meinPasswort'); +-------------------------+------------------------------------+ | DES_ENCRYPT('meinText',5) | DES_ENCRYPT('meinText','meinPasswort') | +-------------------------+------------------------------------+ | … ÿc}æ¤~ | ÿ ]ï×ñ”Å | +-------------------------+------------------------------------+ 1 Zeile im Satz (0,00 Sek.) Verwenden Sie DES_DECRYPT beim Entschlüsseln Allerdings gibt es in w3resource einen Satz: Diese Funktion funktioniert nur mit Secure Sockets Layer (SSL), wenn in der MySql-Konfiguration SSL-Unterstützung verfügbar ist. Mein persönliches Verständnis ist, dass Sie bei Verwendung dieser Verschlüsselungsmethode eine sichere SSL-Verbindung verwenden müssen, um eine Verbindung zur Datenbank herzustellen, da sonst die höhere Verschlüsselungsstufe verschwendet wird. Einweg-VerschlüsselungTatsächlich gab es im Internet schon immer eine Debatte darüber, ob Einwegverschlüsselung tatsächlich Verschlüsselung ist, oder ob es sich beispielsweise um MD5-Verschlüsselung handelt. , ich werde es hier als Verschlüsselungsalgorithmus behandeln, kein Grund zu streiten MD5-VerschlüsselungDas Ergebnis der MD5-Verschlüsselung ist eine 32-Bit hexadezimale Binärzeichenfolge. Wählen Sie MD5('w3resource'); Das Ergebnis ist: mysql> SELECT MD5('w3resource'); +----------------------------------+ | MD5('w3Ressource') | +----------------------------------+ | b273cb2263eb88f61f7133cd308b4064 | +----------------------------------+ 1 Zeile im Satz (0,04 Sek.) VERSCHLÜSSELNENCRYPT wird mithilfe des Unix-Systemaufrufs crypt() implementiert, der eine Binärzeichenfolge zurückgibt. Da es auf Unix-Systemaufrufen basiert, wird unter Windows NULL zurückgegeben. Verschlüsselung: SELECT ENCRYPT('w3resource', 'kodieren'); mysql> SELECT ENCRYPT('w3resource', 'kodieren'); +---------------------------------+ | VERSCHLÜSSELN('w3resource', 'kodieren') | +---------------------------------+ | NULL | +---------------------------------+ 1 Zeile im Satz (0,00 Sek.) SHA1-VerschlüsselungSHA1 gibt eine Binärzeichenfolge mit 40 Hexadezimalziffern zurück. Wenn die Eingabe NULL ist, ist auch die Ausgabe NULL. Wählen Sie SHA1('w3resource'); mysql> SELECT SHA1('w3resource'); +------------------------------------------+ | SHA1('w3resource') | +------------------------------------------+ |d228359c41174cede6b3c401eb8d11746a4ad1eb | +------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) PASSWORTDies wird im Allgemeinen zum Verschlüsseln von Passwörtern verwendet. Wenn die Eingabe NULL ist, ist auch die Ausgabe NULL mysql> PASSWORT AUSWÄHLEN('w3resource'); +----------------------------------------------+ | PASSWORT('w3resource') | +----------------------------------------------+ | *EE0804DDC2CC3E85A47191ECCCBA29B775DFFA77 | +----------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) Referenz Damit ist dieser Artikel über verschiedene Möglichkeiten zur MySQL-Verschlüsselung und -Entschlüsselung abgeschlossen (Zusammenfassung). Weitere Informationen zur MySQL-Verschlüsselung und -Entschlüsselung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Implementierungscode für die adaptive IFrame-Größe
>>: CSS3 ändert den Bildlaufleistenstil des Browsers
Das Anzeigen und Interpretieren von Informationen...
Inhaltsverzeichnis 1. HTTP-Bereichsanforderung 1....
Inhaltsverzeichnis Was ist wartbarer Code? Code-K...
Fügen Sie der Seite einen DOCTYPE hinzu Da versch...
Ein Trick zum Umgang mit dieser Art von Fehlern be...
brauchen Vor Kurzem mussten wir die Node-Onlinedi...
WebKit-Bildlaufleistenstil zurücksetzen 1. Die Bi...
Hinweis: Die Nginx-Version muss 1.9 oder höher se...
Dieser Artikel zeigt ein Beispiel, wie CSS3 verwe...
Wenn Sie einige Microsoft-Dokumente mit LibreOffi...
Kürzlich ist beim Starten von MySQL ein Fehler au...
Textkürzung mit CSS Beachten Sie den folgenden Co...
Vorwort Unter Linux können zwei Arten von Swap-Sp...
Es gibt einige Probleme, die nicht auf Vue beschr...
Inhaltsverzeichnis 1. Vorbereitung 2. Dekompressi...