2013-12-12 29 views
-2

如何從數據庫中獲取md5密碼。 我正在做一個登錄表格> 我想要的,當用戶要登錄。如果用戶名和密碼文本字段與數據庫匹配比使用將登錄。如何從數據庫php中獲取md5密碼?

database .. 在數據庫中,我用md5()存儲密碼。 現在如何從數據庫中獲取密碼以及如何使用此驗證進行驗證。 感謝所有

<h1>Login Here</h1> 
<form name="f1" action="login.php" method="post"> 
<table border="1"> 
<tr><td>username</td><td><input type="text" name="t1"></td></tr> 
<tr><td>password</td><td><input type="password" name="t2"></td></tr> 
<tr><td><input type="submit" value="login"></td></tr> 
</table> 
</form> 

的login.php

<?php 
    include "db.php"; 
    $user=$_POST['t1']; 
    $pass=$_POST['t2']; 
    $result=mysql_query("select * from core where username='$user'")or die(mysql_error()); 
    $row=mysql_fetch_row($result); 
    ?> 
    <h1>Welcome Mr. <?php echo $user;?></h1> 
    <table border="1"> 
    <tr><td>Your User-Id :- </td><td><?php echo $row[0];?></td></tr> 
    <tr><td>Your Username: </td><td><?php echo $row[1];?></td></tr> 
    <tr><td>your md5 Password: </td><td><?php echo $row[2];?></td></tr> 
    <tr><td>your Email Id: </td><td><?php echo $row[3];?></td></tr> 
    </table> 
+6

不要嘗試試圖編碼用戶輸入密碼的MD5和與它的數據庫檢查的密碼從database.Instead解碼。 –

+0

你是什麼意思?向我們顯示您當前的代碼。另外,'md5()'對於散列密碼是非常不安全的。 – Raptor

+0

你到目前爲止嘗試過什麼?向我們展示代碼... – MSA

回答

0

不要嘗試將密碼從數據庫中進行解碼,並與用戶檢查輸入的輸入的是pasword.Instead嘗試編碼用戶輸入密碼的MD5並檢查它與數據庫。

沒有辦法解密MD5。那麼,有,但沒有合理的方式來做到這一點。這點很重要。

要檢查是否有人輸入正確的密碼,無論用戶輸入什麼內容,都需要MD5,並查看它是否與您在數據庫中的內容相符。 如需瞭解更多信息,請登錄this answer

那麼,你所能做的就是像這樣

if(isset($_POST['t2']) && trim($_POST['t2']) != ''){ 
    $pass = md5(trim($_POST['t2'])); 
    //Do a select query for fetching with the username and $pass and do the rest 
} 
+0

*沒有辦法解密MD5。*?不能同意這一點。儘管MD5是一種單向散列算法,但有很多在線資源提供了反向映射md5散列(即使是'md5()* md5()'或'md5()與sha1()'的組合映射)。 – Raptor

+0

你可以在答案的鏈接中找到一個很好解釋的理由。 @ShivanRaptor –