加密和解密 md5

2022-08-30 08:42:01

我正在使用代码并插入数据库。我想找出一种解密它们的方法。我尝试使用解密软件,但它说哈希值应该正好是16字节。有没有办法解密它或使其成为16字节的md5哈希?$enrypt=md5($pass)$encrypt

我的哈希如下所示:c4ca4238a0b923820dcc


答案 1

如前所述,如果不尝试诸如蛮力黑客之类的操作,就无法解密MD5,这是非常耗费资源,不实用且不道德的。

但是,您可以使用类似这样的东西来安全地加密/解密密码/等:

$input = "SmackFactory";

$encrypted = encryptIt( $input );
$decrypted = decryptIt( $encrypted );

echo $encrypted . '<br />' . $decrypted;

function encryptIt( $q ) {
    $cryptKey  = 'qJB0rGtIn5UB1xG03efyCp';
    $qEncoded      = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), $q, MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ) );
    return( $qEncoded );
}

function decryptIt( $q ) {
    $cryptKey  = 'qJB0rGtIn5UB1xG03efyCp';
    $qDecoded      = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), base64_decode( $q ), MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ), "\0");
    return( $qDecoded );
}

使用带有盐的加密方法会更安全,但这将是一个很好的下一步,而不仅仅是使用MD5哈希。


答案 2

没有办法解密MD5。嗯,有,但没有合理的方法来做到这一点。这就是重点。

要检查是否有人输入了正确的密码,您需要MD5用户输入的密码,并查看它是否与您在数据库中的内容匹配。


推荐