| 
	
 | 
 Posted by Colin McKinnon on 06/20/05 15:06 
Gordan wrote: 
 
> mysql> select aes_encrypt('gordan', 'abc'); 
> +------------------------------+ 
> | aes_encrypt('gordan', 'abc') | 
> +------------------------------+ 
> | p§Èb9??_é?0ö?LIÝ             | 
> +------------------------------+ 
>  
> I would like to "emulate" that function in PHP. I know that MySQL AES 
> algorithm is RIJNDAEL_128 so I tried the following code 
> <?php 
>     $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); 
>     $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
>     echo mcrypt_ecb (MCRYPT_RIJNDAEL_128, 'abc', 'gordan', 
>     MCRYPT_MODE_CBC, 
> $iv); 
> ?> 
>  
> but the encrypted string is different from the MySQL one :-( 
> and ideas? 
 
My understanding is that the initialization vector is added to the payload 
before encryption - so I've never quite understood why the examples show: 
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
So it might be worth trying a null iv. 
 
Other considerations include: 
1) how is the key padded to the right length (16 chars) 
2) maybe the data is the same - it's just being represented differently 
(since it seems to be stored by MySQL in binary format) 
 
HTH 
 
C.
 
  
Navigation:
[Reply to this message] 
 |