Reply to Re: "emulating" MySQL aes_encrypt() in PHP

Your name:

Reply:


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.

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация