加密和解密 md5
我正在使用代码并插入数据库。我想找出一种解密它们的方法。我尝试使用解密软件,但它说哈希值应该正好是16字节。有没有办法解密它或使其成为16字节的md5哈希?$enrypt=md5($pass)
$encrypt
我的哈希如下所示:c4ca4238a0b923820dcc
我正在使用代码并插入数据库。我想找出一种解密它们的方法。我尝试使用解密软件,但它说哈希值应该正好是16字节。有没有办法解密它或使其成为16字节的md5哈希?$enrypt=md5($pass)
$encrypt
我的哈希如下所示:c4ca4238a0b923820dcc
如前所述,如果不尝试诸如蛮力黑客之类的操作,就无法解密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哈希。
没有办法解密MD5。嗯,有,但没有合理的方法来做到这一点。这就是重点。
要检查是否有人输入了正确的密码,您需要MD5用户输入的密码,并查看它是否与您在数据库中的内容匹配。