簡體   English   中英

使用鹽解密密碼

[英]decrypt password using salt

這里的代碼是加密密碼,但我如何解密它或將它與登錄 laravel 進行比較

使用的代碼

   getsql(md5($_POST['regpassword'] . SALT), "default"),

md5 是散列並且它是不可逆的你不能解密它你只能使用相同的算法和鹽來散列密碼然后比較結果以確保它是正確的密碼

驗證密碼時,您可以執行以下操作:

$hashed = md5($_POST['password'] . SALT);
$sql = "SELECT * FROM users WHERE username = '{$_POST['username']}' AND password = '$hashed'";

我已經簡化了這一點以展示如何檢查密碼的重要部分,實際上您應該使用准備好的語句來防止 SQL 注入。

另一種方法是從數據庫中獲取散列密碼,然后將其與給出的散列+加鹽密碼進行比較:

$hashed = md5($_POST['password'] . SALT);
$sql = "SELECT password FROM users WHERE username = '{$_POST['username']}'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
if ($row && $hashed == $row['password']) {
    // user is validated
}

如果您修復存儲密碼的方法以使用比靜態SALT更合理的方法,則可以輕松更新第二種方法。 而不是$hashed == $row['password']你會使用password_verify($_POST['password'], $row['password'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM