解码多个变量通过MD5

问题描述:

编码我有这个变量的编码:解码多个变量通过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

所以在这种情况下,我不能回滚? –

散列不是加密。 MD5是一种哈希算法。散列是单向的,所以你不能用解密一个散列。你可以做的是尝试通过尝试匹配大量可能的组合来猜测原始$secret . $path . $expire字符串。但即使如此,md5并不是一个抗碰撞散列函数,所以即使那样也不能保证。