我有这些变量的编码:
$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的一部分,用于验证请求。服务器如何验证请求?
答案 0 :(得分:0)
哈希不是加密。 MD5
是一种散列算法。散列是单向的,所以你不能解密散列。您可以尝试通过尝试匹配大量可能的组合来猜测原始$secret . $path . $expire
字符串。但即使这样,md5也不是一个抗冲突的哈希函数,所以即便如此也无法保证。