所以,有这个网站 (http://md5decrypter.co.uk),给定一个 md5 哈希,它将尝试返回原始字符串。
是否有 API 或有人制作了一个 PHP 类来使用它?我一个都找不到...
在你问之前,让我向你保证,我没有恶意。
先感谢您。
即使来自 md5decryptor 的人很好,他也不会仅仅因为你在问,就让你通过 HTTP 访问他的资产。与其他任何人一样,您可以使用需要验证码的公开可用的网络界面 - 它说明了一切。
或者简而言之:不,那里没有 PHP API。
但是,你为什么不自己经营呢?这是相当微不足道的:
$decryptors = array('Google', 'Gromweb');
foreach ($hashes as $hash) {
echo "$hash";
foreach($decryptors as $decrytor)
{
if (NULL !== ($plain = MD5Decryptor::plain($hash, $decrytor))) {
echo " - found: $plain ($decrytor)";
break;
}
}
echo "\n";
}
输出:
fcf1eed8596699624167416a1e7e122e - found: octopus (Google)
bed128365216c019988915ed3add75fb - found: passw0rd (Google)
d0763edaa9d9bd2a9516280e9044d885 - found: monkey (Google)
dfd8c10c1b9b58c8bf102225ae3be9eb - found: 12081977 (Google)
ede6b50e7b5826fe48fc1f0fe772c48f - found: 1q2w3e4r5t6y (Google)
那些您无法直接查找的,您可以手动粘贴到该站点。请记住,如果更多的人像你一样思考,就会有越来越多的网站关闭(其中大多数已经关闭)。
abstract class MD5Decryptor
{
abstract public function probe($hash);
public static function plain($hash, $class = NULL)
{
if ($class === NULL) {
$class = get_called_class();
} else {
$class = sprintf('MD5Decryptor%s', $class);
}
$decryptor = new $class();
if (count($hash) > 1) {
foreach ($hash as &$one) {
$one = $decryptor->probe($one);
}
} else {
$hash = $decryptor->probe($hash);
}
return $hash;
}
public function dictionaryAttack($hash, array $wordlist)
{
$hash = strtolower($hash);
foreach ($wordlist as $word) {
if (md5($word) === $hash)
return $word;
}
}
}
abstract class MD5DecryptorWeb extends MD5Decryptor
{
protected $url;
public function getWordlist($hash)
{
$list = FALSE;
$url = sprintf($this->url, $hash);
if ($response = file_get_contents($url)) {
$list[$response] = 1;
$list += array_flip(preg_split('/\s+/', $response));
$list += array_flip(preg_split('/(?:\s|\.)+/', $response));
$list = array_keys($list);
}
return $list;
}
public function probe($hash)
{
$hash = strtolower($hash);
return $this->dictionaryAttack($hash, $this->getWordlist($hash));
}
}
class MD5DecryptorGoogle extends MD5DecryptorWeb
{
protected $url = 'http://www.google.com/search?q=%s';
}
class MD5DecryptorGromweb extends MD5DecryptorWeb
{
protected $url = 'http://md5.gromweb.com/query/%s';
}
你总是可以自己做:
<?php
//From file or some John the ripper piped input
$wordlist=file('some_word_list.lst');
foreach ($wordlist as $word){
$sql="INSERT INTO table (plain_word,hashed_word)values('$word','".md5($word)."')";
...
}
?>