Форум на Kuban.ru (http://forums.kuban.ru/)
-   Веб-дизайн и программирование (http://forums.kuban.ru/f1030/)
-   -   php & mysql - шифрование (http://forums.kuban.ru/f1030/php_mysql_-_shifrovanie-2475295.html)

crazy_ik 10.04.2012 12:54

php & mysql - шифрование
 
Добрый день! Подскажите такую штуку.
Мне надо зашишифровать hello с ключом key:

В phpMyAdmin делаю:
SELECT AES_ENCRYPT('hello','key') = 5e27050b59c889fee9f953137259bf6b

Пытаюсь расшифровать:
SELECT AES_DECRYPT('5e27050b59c889fee9f953137259bf6b','key') = NULL

Хотя, если сделать обратное, т.е.
SELECT AES_DECRYPT(AES_ENCRYPT('hello','key'),'key') = то всё нормально...

Гламурный Креведко 10.04.2012 13:00

Может дело, что шифруете через "key", а расшифровываете через "ke y"?

crazy_ik 10.04.2012 13:02

Вообще пытаюсь AES расшифровать средствами php, нифига не получается.. выдает какуюто белиберду.. хотя код функции 100% рабочий:

$query="select * from roles where id=".$_SESSION[level];
$row=mysql_fetch_assoc(mysql_query($query));

$passw=mysql_aes_decrypt($row[passw],$key);

function mysql_aes_decrypt( $val, $ky )
**
$mode = MCRYPT_MODE_ECB;
$enc = MCRYPT_RIJNDAEL_128;
$dec = @mcrypt_decrypt($enc, $ky, $val, $mode, @mcrypt_create_iv( @mcrypt_get_iv_size($enc, $mode), MCRYPT_DEV_URANDOM ) );
return rtrim( $dec, ( ( ord(substr( $dec, strlen( $dec )-1, 1 )) >= 0 and ord(substr( $dec, strlen( $dec )-1, 1 ) ) <= 16 ) ? chr(ord(substr( $dec, strlen( $dec )-1, 1 ))): null) );
**


код взят mysql_aes_decrypt с [url]http://php.tonnikala.org/manual/ru/ref.mcrypt.php[/url]

Скорее всего там что то преобразовать в чего то надо, но только вот как (((

crazy_ik 10.04.2012 13:03

1-Гламурный Креведко > да это сюда так вставилось...

суслик 10.04.2012 15:59

там есть нечитаемые символы и кодировка какая ?

суслик 10.04.2012 16:00

например у меня так выглядит
^'
Yȉ���SrY�k

суслик 10.04.2012 16:01

загони результат AES_ENCRYPT в base64 например и попробуй, а потом обратно из base64 И decrypt

crazy_ik 10.04.2012 21:16

Получилось :) Всем спасибо)
Тип поля в таблице должен быть BLOB, тогда всё работает.


Текущее время: 20:38. Часовой пояс GMT +3.