2013-08-04 147 views
0
<?php 
date_default_timezone_set('Asia/Kolkata'); 
$xmlfile='xml/adminpwd.xml'; 
$xml = simplexml_load_file($xmlfile); 

if (!empty($_POST['password'])) { 
    extract($_POST); 
    if($adminpwd!='this') 
     $error="Incorrect Password. Enter the correct password."; 
} 
?> 

<form method='post' action='' name='admin'> 
<h3 style="color: #798196;">Enter Current Password</h3><br/> 
     <input type='password' name='adminpwd' /> 
     <input type='submit' name='password' value='Enter'> 
</form> 

這是我的腳本。php hash()與sha512顯示不同的結果相同的值

當我試試這個:

<?php 
    if (isset($error)) 
     echo "<br/><h3 class='error'>".hash('sha512', $adminpwd)."</h3><br/>"; 
?> 

我得到的輸出: de784a6d81e125ff2223d977683c3efdd4513941d3737861008b8358d10e8d2757963c3a2619d0924a70d0e11b53492847f741af6e767388fd395c170508d795

但是當我嘗試這個辦法:

<?php 
    if (isset($error)) 
     echo "<br/><h3 class='error'>".hash('sha512', $_POST['adminpwd'])."</h3><br/>"; 
?> 

我得到的輸出: 1fc286c9c7dc733b3a46a21a923c646c14c19bac951d63380ec8d4b3c6786fdbe7dd4bd325eef31553fa829e19989fe060da01921cfc68f7b9ff03383f78710b

雖然這兩個變量包含相同的字符串。爲什麼產量不同?

+4

只需在兩種情況下輸出'$ adminpwd'。你不知道*他們是一樣的,直到你看到他們兩個。還要注意,前導/尾隨空格也是可疑的。 –

+0

這裏的好處↑↑↑務必修剪輸入的文字。 – MightyPork

+0

兩次我輸入相同的密碼。並重復實驗5次以上確認。但結果是一樣的。 當我現在嘗試,兩種情況下給出相同的輸出。沒有解決問題。但是謝謝。 – RatDon

回答

2

它的唯一不同之處在於,$ _POST ['adminpwd']中的內容不是完全相同的字符串值。這可能是因爲你沒有檢查$ adminpwd,也可能沒有每次都設置。

另外,在$ _POST或任何其他請求變量上使用extract()並不是非常安全,因爲您本質上允許用戶創建PHP變量。

相關問題