Md5 проблем?

meleto

Registered
Здравейте,
имам URL, който е от тип i=c4ca4238a0b923820dcc509a6f75849b&r=c4ca4238a0b923820dcc509a6f75849b

Тоест всеки параметър е с md5.

Съответно искам да разкодирам това и да го ползвам като GET параметър.

Но когато опитам да го направя
$pri = md5($_REQUEST['r']);
$inv = md5($_REQUEST['i']) ;

и стойността се хешира пак.

Спомням си, че така се прави, но стойността си се хешира втори път и се получава че
$pri = 28c8edde3d61a0411511d3b1866f0636

помагайте

Как да получа реалната стойност на i и r
 
Прави разлика между хеширане и кодиране. Md5 e необратим алгоритам
смисал, няма "разкодиране"
 
macmen каза:
зависи какво искаш да правиш? Кажи ми точно за какво ти трябва ?

Искам да скрия данните в URL, тоест да не се вижда реалното id 8)

i=c4ca4238a0b923820dcc509a6f75849b, а не i=1

и след това в кода да си ползвам реалната стойност i=1
 
Може да стане по няколко начина.
Първо може да си направиш едни методи който да правят всичко това

аз ползвам тези


function encodeEmail($string, $key) {
$key = sha1($key);
$strLen = strlen($string);
$keyLen = strlen($key);
for ($i = 0; $i < $strLen; $i++) {
$ordStr = ord(substr($string, $i, 1));
if ($j == $keyLen) {
$j = 0;
}
$ordKey = ord(substr($key, $j, 1));
$j++;
$hash .= strrev(base_convert(dechex($ordStr + $ordKey), 16, 36));
}
return $hash;
}

function decodeEmail($string, $key) {
$key = sha1($key);
$strLen = strlen($string);
$keyLen = strlen($key);
for ($i = 0; $i < $strLen; $i+=2) {
$ordStr = hexdec(base_convert(strrev(substr($string, $i, 2)), 36, 16));
if ($j == $keyLen) {
$j = 0;
}
$ordKey = ord(substr($key, $j, 1));
$j++;
$hash .= chr($ordStr - $ordKey);
}
return $hash;
}
Но имай вредвид, че те не са мн сигорни.

Другия варият е хешираш си го както с md5 и си правиш следната фунция
Но за мд5 трябва да си измислиш някакав алгоритам.
function returnRealId($string){
тук трябва да ти е заявката от дб
тя трябва да принтира всички ID
$data = array();
foreach ($allId as $user_id){
$data[md5($user_id)] = $user_id
}
if(!array_key_exists($string, $data)){
throw new Exception('id does not exist');
}
return $data[$string];

}
 

Горе