解码多个变量通过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的一部分,它用于验证请求。服务器如何验证请求?
答
散列不是加密。 MD5
是一种哈希算法。散列是单向的,所以你不能用解密一个散列。你可以做的是尝试通过尝试匹配大量可能的组合来猜测原始$secret . $path . $expire
字符串。但即使如此,md5并不是一个抗碰撞散列函数,所以即使那样也不能保证。
散列是哈希,不是加密。散列是单向的。 – Federkun
对于md5哈希不回滚,而是使用盐哈希回滚。 – ameenulla0007
所以在这种情况下,我不能回滚? –