代码如下:
if(isset($_POST['submit'])){
$name1=$_POST["name1"];
//echo "$name1";
$name2=$_POST["name2"];
$email=$_POST["email"];
$phone=$_POST["phone"];
$comment=$_POST["comment"];
$gender=$_POST["gender"];
$age=$_POST["age1"];
$date=$_POST["date"];
$att_date = date("y-m-d",strtotime($_POST["date"]));
if($name1 !='' || $email !=''){
$query = mysql_query("INSERT INTO tb_card(fname, lname, email, phone, comment, gender, age, joindate) values(MD5('".$name1."'), MD5('".$name2."'), MD5('".$email."'), MD5('".$phone."') , '$comment', '$gender','$age', '$att_date')");
//echo $query; encrypt('".$_POST['passwd']."')
echo "<br/><br/><span>Data Inserted successfully...!!</span><br>";
}else
{
}
}
答案 0 :(得分:2)
由于md5是哈希算法,因此无法解码。散列值具有称为一次性属性的属性。在此,它是“单向的”。它们可以进行比较,因此您可以查看用户输入是否与数据库中已经散列的哈希值相同。但是不要使用md5作为密码哈希,因为md5是易受攻击的,并且这个哈希算法存在许多彩虹表。
你需要例如mcrypt mcrypt PHP Manual来做你想做的事。
答案 1 :(得分:0)
function string2secret($str)
{
$key = "123";
$td = mcrypt_module_open(MCRYPT_DES,'','ecb','');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
$key = substr(md5($key), 0, $ks);
mcrypt_generic_init($td, $key, $iv);
$secret = mcrypt_generic($td, $str);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $secret;
}
function secret2string($sec)
{
$key = "123";
$td = mcrypt_module_open(MCRYPT_DES,'','ecb','');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
$key = substr(md5($key), 0, $ks);
mcrypt_generic_init($td, $key, $iv);
$string = mdecrypt_generic($td, $sec);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return trim($string);
}
echo secret2string(string2secret("11111111111111111"));
echo string2secret("11111111111111111");
mcrypt PHP extension is need
答案 2 :(得分:0)
MD5是一种单向散列机制。它不能通过简单的编程来反转,例如unmd5($string)
或类似的。 “解码”数据库中数据的唯一方法是使用所谓的彩虹表。
Rainbow表将散列字符串(您的数据)与预先存在的md5()
散列列表进行比较,以确定它匹配的字符串。如果它匹配匹配,它将使用同一行中的纯文本项来显示消息。
对于您想要做的事情,这不是一个可行的解决方案。如果要调用数据,则需要使用自定义编码算法(使用str_replace()等)或以明文形式存储。
您提交的数据不是通常使用散列算法加密的数据类型。我只是建议删除md5以解决您的问题。