Hallo-Welt
Aktives Mitglied
Hi,
Ich wollte aus Sicherheitsgründen den Content in der MySQL-DB verschlüsseln, und dachte dafür die PHP-interne Funktion openssl_encrypt zu nutzen. Doch mach ich mich zurzeit schwer, dem Handbuch zu folgen. Denn ich bekam unter ausführen des in den UCNs hinterlegten Beispiels
folgende Warnung von PHP zurück:
Hab dann nochmal in der Dokumentation nachgesehen und tatsächlich, da fehlen noch zwei Parameter, einmal $options (int) und einmal $iv (String).
Das erste ist entweder 0 oder 1, wobei ich mich für 0 entschieden habe, da ich bei 1 sowas wie
als String zurückbekomme.
Aber was soll ich beim letzten Parameter eintragen? In der Doku steht nur
zurück.
Also übergab ich als String "abcdefghijklmnop", und da klappte es auch ganz ohne Warnung. Aber warum zum Teufel braucht die Funktion diesen Parameter? Und was sollte idealerweise an ihn übergeben werden (also einfach irgendwas, oder eine Zufallszahl, oder was???)?
Ich wollte aus Sicherheitsgründen den Content in der MySQL-DB verschlüsseln, und dachte dafür die PHP-interne Funktion openssl_encrypt zu nutzen. Doch mach ich mich zurzeit schwer, dem Handbuch zu folgen. Denn ich bekam unter ausführen des in den UCNs hinterlegten Beispiels
PHP:
$string = 'It works ? Or not it works ?';
$pass = '1234';
$method = 'aes128';
echo openssl_encrypt($string, $method, $pass);
Code:
Warning: openssl_encrypt() [function.openssl-encrypt]: Using an empty Initialization Vector (iv) is potentially insecure and not recommended on line 5
YGYj+ysu5u9UigVwb2xbcmRmyFSgPeoKmg6q1etG7wA=
Das erste ist entweder 0 oder 1, wobei ich mich für 0 entschieden habe, da ich bei 1 sowas wie
Code:
`f#�+.��T�pol[rdf�T�=� ����F�
Aber was soll ich beim letzten Parameter eintragen? In der Doku steht nur
ohne Beispiel und irgendwas. Dann hab ich halt irgendein String übergeben und bekam als Warnung diesesmal promptA non-NULL Initialization Vector.
Code:
Warning: openssl_encrypt() [function.openssl-encrypt]: IV passed is only 2 bytes long, cipher expects an IV of precisely 16 bytes, padding with \0 on line 5
Also übergab ich als String "abcdefghijklmnop", und da klappte es auch ganz ohne Warnung. Aber warum zum Teufel braucht die Funktion diesen Parameter? Und was sollte idealerweise an ihn übergeben werden (also einfach irgendwas, oder eine Zufallszahl, oder was???)?