Bug #67287 [Opn->Dup]: Warning: mcrypt_encrypt(): Only keys of size 24 supported

From: Date: Thu, 15 May 2014 16:37:14 +0000
Subject: Bug #67287 [Opn->Dup]: Warning: mcrypt_encrypt(): Only keys of size 24 supported
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-185832@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=67287&edit=1

 ID:                 67287
 Updated by:         levim@php.net
 Reported by:        mengxiangbaidu at qq dot com
 Summary:            Warning: mcrypt_encrypt():  Only keys of size 24
                     supported
-Status:             Open
+Status:             Duplicate
 Type:               Bug
 Package:            mcrypt related
 Operating System:   windows
 PHP Version:        5.6.0beta2
 Block user comment: N
 Private report:     N

 New Comment:

Seems to have double-posted.


Previous Comments:
------------------------------------------------------------------------
[2014-05-15 16:37:04] levim@php.net

Related To: Bug #67286

------------------------------------------------------------------------
[2014-05-15 14:50:42] mengxiangbaidu at qq dot com

Description:
------------
php version <= 5.5.12

string(6) "zxcvbn"

Warning: mcrypt_encrypt(): Key of size 32 not supported by this algorithm.  in /test.php on line 9

Warning: mcrypt_decrypt(): Key of size 32 not supported by this algorithm.  in /test.php on line 17
string(0) "zxcvbn"


php version >= 5.6

string(6) "zxcvbn"

Warning: mcrypt_encrypt(): Key of size 32 not supported by this algorithm. Only keys of size 24
supported in /test.php on line 9

Warning: mcrypt_decrypt(): Key of size 32 not supported by this algorithm. Only keys of size 24
supported in /test.php on line 17
string(0) ""

================

I know this warning is good thing 。  If you are upgrading php 5.5 to 5.6 ,   the php program
does not work 。This maybe a serious problem。




Test script:
---------------
<?php
function encrypt($data, $key) {

    $block = mcrypt_get_block_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_ECB);
    $pad = $block - (strlen($data) % $block);
    $data .= str_repeat(chr($pad), $pad);

    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_ECB), MCRYPT_RAND);
    $encrypted = mcrypt_encrypt(MCRYPT_TRIPLEDES, $key, $data, MCRYPT_MODE_ECB, $iv);

    return $encrypted;
}

function decrypt($data, $key) {

    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_ECB), MCRYPT_RAND);
    $data = mcrypt_decrypt(MCRYPT_TRIPLEDES, $key, $data, MCRYPT_MODE_ECB, $iv);

    $block = mcrypt_get_block_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_ECB);
    $pad = ord($data[($len = strlen($data)) - 1]);
    $decrypted = substr($data, 0, strlen($data) - $pad);

    return rtrim($decrypted);
}
$key = md5('asdfgh');
$original_data = 'zxcvbn';
var_dump($original_data);
$data = encrypt($original_data, $key);
$data = base64_encode($data);
$data = base64_decode($data);
$data = decrypt($data, $key);
var_dump($data);

Expected result:
----------------
string(6) "zxcvbn"

Warning: mcrypt_encrypt(): Key of size 32 not supported by this algorithm. Only keys of size 24
supported in /test.php on line 9

Warning: mcrypt_decrypt(): Key of size 32 not supported by this algorithm. Only keys of size 24
supported in /test.php on line 17
string(0) "zxcvbn"

Actual result:
--------------
string(6) "zxcvbn"

Warning: mcrypt_encrypt(): Key of size 32 not supported by this algorithm. Only keys of size 24
supported in /test.php on line 9

Warning: mcrypt_decrypt(): Key of size 32 not supported by this algorithm. Only keys of size 24
supported in /test.php on line 17
string(0) ""




------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=67287&edit=1


Thread (2 messages)

« previous php.bugs (#185832) next »