2017-02-21 2 views
-1

Ich versuche eine Funktion zu erstellen, die eine Zeichenfolge verschlüsseln kann. Ich habe den folgenden Code, aber ich bekomme einen Fehler.mcrypt_get_block_size(): Modulinitialisierung fehlgeschlagen - Fehler bei Funktion

$key = "testkey"; // This is the function that does the encryption. Treat it as a black box. Do not edit! function encrypt($str, $key){ $block = mcrypt_get_block_size('ISO-8859-1', 'ecb'); $pad = $block - (strlen($str) % $block); $str .= str_repeat(chr($pad), $pad); return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_ECB)); } // call the encrypt function and send it the key and the data to encrypt. Store the returned data in the $dataopt variable. $dataopt = encrypt($rawstring, $key);

Der Fehler ist "mcrypt_get_block_size(): Modulinitialisierung auf der Leitung auf der Leitung 41 nicht bestanden", die $ block = mcrypt_get_block_size ist ('ISO-8859-1', 'ECB');

Irgendwelche Ideen?

Antwort

0

Sie übergeben 'ISO-8859-1' als ersten Parameter an mcrypt_get_block_size.

Wahrscheinlich wollten Sie als ersten Parameter MCRYPT_RIJNDAEL_128 übergeben.

Bitte beachten Sie, dass Mcrypt veraltet ist, also sollten Sie sich wahrscheinlich andere Lösungen ansehen. Werfen Sie einen Blick auf this question für einige Alternativen.

+0

Hallo Oz. Danke für die Antwort. Ich habe "ISO-8859-1" durch MCRYPT_RIJNDAEL_128 ersetzt, aber ich erhalte den Fehler "Warnung: mcrypt_encrypt(): Schlüssel der Größe 7 wird von diesem Algorithmus nicht unterstützt. Nur Schlüssel der Größen 16, 24 oder 32 werden in" on line 44 unterstützt bezieht sich auf return base64_encode (mcrypt_encrypt (MCRYPT_RIJNDAEL_128, $ key, $ str, MCRYPT_MODE_ECB)); Danke für Ihre Hilfe – deanhodges

+0

@deanhodges wenn die Antwort geholfen hat, bitte akzeptieren Sie es. Wie ich bereits erwähnt habe, schlage ich vor, dass Sie 'mcrypt' überhaupt nicht verwenden. Ihr Fehler besteht darin, dass Sie einen Binärschlüssel benötigen und eine Zeichenfolge übergeben (siehe http://php.net/manual/en/function.mcrypt-encrypt.php). mcrypt ist sehr niedrig und es ist leicht, die Dinge konzeptionell falsch zu machen ** auch wenn alles gut aussieht **. Ich weiß nicht, warum Sie gerade versuchen, Strings zu verschlüsseln, aber da gibt es eine bessere Lösung als Mcrypt für fast jeden Bedarf. –

Verwandte Themen