2016-01-23 73 views
-2

編碼我有這個變量的編碼:解碼多個變量通過MD5

$secret = 'jsdkhf8fh3fewk'; 
    $path = '/foo.pdf'; 
    $expire = time() + 3600; // one hour valid 
    $md5 = base64_encode(md5($secret . $path . $expire, true)); 
    $md5 = strtr($md5, '+/', '-_'); 
    $md5 = str_replace('=', '', $md5); 

有沒有辦法回滾到原始變量$secret,$path and $expire

問題是這個$md5是url的一部分,它用於驗證請求。服務器如何驗證請求?

+1

散列是哈希,不是加密。散列是單向的。 – Federkun

+0

對於md5哈希不回滾,而是使用鹽哈希回滾。 – ameenulla0007

+0

所以在這種情況下,我不能回滾? –

回答

0

散列不是加密。 MD5是一種哈希算法。散列是單向的,所以你不能用解密一個散列。你可以做的是嘗試通過嘗試匹配大量可能的組合來猜測原始$secret . $path . $expire字符串。但即使如此,md5並不是一個抗碰撞散列函數,所以即使那樣也不能保證。