Richtige Weg, um php zu benutzen openssl_encrypt

Arbeite ich mit Kryptographie auf ein Projekt und ich brauche ein wenig Hilfe, wie die Arbeit mit openssl_encrypt und openssl_decrypt ich möchte nur wissen, die einfachste und richtige Weg, es zu tun. Hier ist, was ich so weit gekommen:

//To encrypt a string

$dataToEncrypt = 'Hello World';

$cypherMethod = 'AES-256-CBC';
$key = random_bytes(32);
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($cypherMethod));

$encryptedData = openssl_encrypt($dataToEncrypt, $cypherMethod, $key, $options=0, $iv);

Ich dann speichern $cypherMethod, $key, und $iv für die Verwendung beim entschlüsseln der $encryptedData. (Lasst uns nicht erläutern, wie ich die Werte zu speichern, vielen Dank!)

//To decrypt an encrypted string

$decryptedData = openssl_decrypt($encryptedData, $cypherMethod, $key, $options=0, $iv);

First off, ist der obige Beispiel-code ein korrektes Beispiel für die Verwendung php openssl_encrypt?

Zweite, ist meine Methode zum generieren der $key und $iv korrekt und sicher? Weil ich immer auf die Lektüre, die Schlüssel werden kryptographisch sicher.

Schließlich nicht 32-byte erforderlichen Wert für AES-256-CBC? Wenn ja, dann warum ist es, dass openssl_cipher_iv_length() gibt nur int(16) als die Länge? Sollte es nicht int(32)?

InformationsquelleAutor Jo E. | 2017-12-29
Schreibe einen Kommentar