Wie zum verschlüsseln von Klartext mit AES-256-CBC in PHP mit OpenSSL?
Ich versuche zu verschlüsseln, vertrauliche Daten wie persönliche Nachrichten in meinem php betriebene website vor der Eingabe in die Datenbank. Ich habe etwas recherchiert im internet und ich habe festgestellt, dass einige wichtige Dinge zu beachten:
-
Nie verwenden, mcrypt, es ist abandonware.
-
AES basiert auf dem Rijndael-Algorithmus und wurde ungebrochen bis heute.
-
AES hat auch empfohlen worden, die von NSA und wird in der US-Regierung, Daten-Verschlüsselung, aber seit der NSA ist es zu empfehlen, es gibt eine chance, die Sie vielleicht schleichen Sie auf meine Benutzer-Daten leicht.
-
Blowfish wurde ungebrochen als gut, aber langsam und weniger beliebte.
So, ich habe beschlossen, ich werde versuchen Sie es zunächst mit AES-256-cbc. Aber ich bin noch nicht sicher, ob ich sollte nicht der Ansicht, Blowfish eine bessere option. Also, alle Empfehlungen sind willkommen.
Und meine primäre Sorge ist, wie der zum verschlüsseln der Daten in php? Ich finde ein gutes Handbuch über dieses in der php-Dokumentation. Was ist der richtige Weg, um es zu implementieren?
Jede Hilfe ist schwer zu schätzen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
AES-256 (OpenSSL-Implementierung)
Sind Sie im Glück.
Den
openssl
Erweiterung hat einige Recht einfache Methoden für die AES-256. Die Schritte, die Sie ergreifen müssen, sind im Grunde...$encryption_key = openssl_random_pseudo_bytes(32);
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
openssl_encrypt()
openssl_encrypt($data, 'aes-256-cbc', $encryptionKey, $options, $initializationVector)
$options
kann eingestellt werden, um0
für Standard-Optionen oder geändert werden, umOPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING
$encrypted = $encrypted . ':' . $iv;
explode(':' , $encrypted);
openssl_decrypt()
openssl_decrypt($encryptedData, 'aes-256-cbc', $encryptionKey, $options, $initializationVector)
Aktivieren openssl
openssl_functions()
werden nicht standardmäßig verfügbar, Sie können diese Erweiterung in Ihremphp.ini
- Datei, indem Sie die Kommentarzeichen der Zeile.;extension=php_openssl.dll
durch das entfernen des führenden;
PHP - Geige.
http://phpfiddle.org/lite/code/9epi-j5v2
key
undiv
generation. Nicht sicher über hex-Umwandlung hab ich immer gearbeitet, von den oben genannten. Upps behoben einen Tippfehler zu.php.ini