我使用代码$enrypt=md5($pass)
并将$encrypt
插入到数据库中。我想找出破解它们的方法。我试过使用解密软件,但它显示哈希值应该正好是16个字节。有没有办法解密它,或者把它变成16字节的md5散列?
我的散列如下:c4ca4238a0b923820dcc
发布于 2013-03-04 13:02:23
如前所述,如果不尝试暴力破解之类的东西,就无法解密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 );
}
使用带有salt的加密方法会更安全,但这将是比仅使用MD5散列更好的下一步。
发布于 2013-10-27 23:19:45
/* you can match the exact string with table value*/
if(md5("string to match") == $res["hashstring"])
echo "login correct";
https://stackoverflow.com/questions/15194663
复制相似问题