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
Inhaltsverzeichnis Vorbemerkungen Reproduktion de...
Gewünschte Wirkung: Nach dem Klick auf die Übermi...
Ziel: Erstelle ein Quadrat, dessen Seitenlänge gl...
Ich habe heute eine Aufgabe von der Firma erhalte...
Bereiten Sie die Zutaten wie oben gezeigt vor (ps...
Ein Webserver kann mehrere Websites mit unabhängi...
Der <base>-Tag gibt die Standardadresse oder...
Eine Forderung Im Allgemeinen hat ein Unternehmen...
= Nur beim Setzen und Aktualisieren wirkt es wie ...
Im vorherigen Artikel haben wir mit Timeouts unte...
Die spezifische Verwendung der Drag & Drop-Zo...
Prozessstrukturdiagramm Nginx ist eine Multiproze...
Inhaltsverzeichnis Algorithmische Strategie Einze...
Verwenden Sie die Vue-Cropper-Komponente, um Avat...
1. Installieren Sie das Fcitx-Eingabeframework Zu...