2012-03-11 3 views
3

Я передаю информацию из одной страницы другой с помощью следующего кода PHP ..PHP mcrypt_decrypt() вопрос

Index.php страница:

<?php 
include("secure/content/database/db.php"); 
$sql = mysql_query("SELECT * FROM press"); 
while($re = mysql_fetch_array($sql)) 
{ 


$id= (int) $re['id'];     

$key = "bladeyeshibbir?1%59"; 

$size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB); 
$iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM)  

$encrypted_data=mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $id, MCRYPT_MODE_ECB, $iv); 

$id = urlencode(base64_encode($encrypted_data)); 

$page = mysql_real_escape_string(trim($re['pagename'])); 
$content = mysql_real_escape_string(trim($re['content'])); 
echo "<li><a href='press.php?id=$id&request=$md'>$page</a></li>"; 
      } 

      ?> 

Press.php страница

<?php 
include("secure/content/database/db.php"); 
include("header.php"); 

$id = $_REQUEST["id"]; 
$key = "bladeyeshibbir?1%59#"; 

$size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB); 
$iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM)  

$decrypted_data=mcrypt_decrypt(MCRYPT_3DES, $key, $id, MCRYPT_MODE_CBC, $iv); 
$url_id = base64_decode(urldecode($decrypted_data)); 

$request = $_REQUEST['request']; 

$sql = mysql_query("SELECT * FROM press WHERE id='$url_id' "); 
$re = mysql_fetch_array($sql); 

$pagename = mysql_real_escape_string(trim($re['pagename'])); 
$content = mysql_real_escape_string(trim($re['content'])); 

echo "<title>$pagename</title>"; 

echo $content; 

include("fotter.php"); 

?> 

BUT Я получаю эту ошибку:

Warning: mcrypt_decrypt() [function.mcrypt-decrypt]: Attempt to use an empty IV, which is NOT recommend in C:\xampp\htdocs\audock\press.php on line 10.

Фактически, я хочу, чтобы пользователь не мог видеть фактическое значение переменной строки запроса.

ответ

0

Отъезд this post. Вы не должны использовать mcrypt_ecb с mcrypt_decrypt, вы должны использовать mcrypt_encrypt. Затем при шифровании с помощью mcrypt_encrypt вам необходимо создать вектор инициализации с mcrypt_create_iv (docs here), который впоследствии следует использовать для дешифрования.

+0

хорошо, я буду проверять ..... –

+0

я получаю ту же ошибку .. –

+0

Plase обновить свой код в ваш пост –

0

Пример с нулевой байт IV

$encrypted_data=mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $id, MCRYPT_MODE_ECB, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); 
Смежные вопросы