解码由MD5编码的多个变量

时间:2016-01-23 14:00:55

标签: php 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 个答案:

答案 0 :(得分:0)

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