簡體   English   中英

如何從PHP中的數據庫解密密碼?

[英]How to decrypt a password from database in php?

我正在創建一個編輯信息頁面,但是當我調出密碼數據時,它會被加密。 有辦法解密嗎?

這是我的密碼

 <?php require 'dbfunction.php'; $con = getDbConnect(); if (mysqli_connect_errno($con)) { "Failed to connect to MySQL: " . mysqli_connect_error(); } else { $result = mysqli_query($con, "SELECT * FROM admininfo where name = xyz"); while ($admininfo = mysqli_fetch_array($result)) { ?> <div class="container"> <div class="row"> <center> <h2>Edit Info Administrator</h2> </center> <form> <div class="form-group"> <label class="col-sm-2 control-label">Name</label> <div class="col-md-10"> <input type="text" class="form-control" value="<?php echo $admininfo['name']; ?>" name="name"> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">Password</label> <div class="col-md-10"> <input type="password" class="form-control" placeholder="<?php echo $admininfo['password']; ?>" name="password"> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">Comfirm Password</label> <div class="col-md-10"> <input type="password" class="form-control" placeholder="Confirm Password" name="confirmpassword"> </div> </div> <div class="form-group"> <div class="col-sm-10 col-sm-offset-2"> <input type="submit" value="edit account" class="btn btn-primary"> </div> </div> </form> </div> </div> <?php } mysqli_close($con); } ?> 

當前出現名稱,僅密碼已加密。

從您提供的代碼中無法得知密碼的加密方式。

如果操作正確,則將使用鹽和哈希算法而不是任何可逆加密來存儲密碼。 在這種情況下,答案將是“否”。

您永遠不需要找出密碼是什么,只需設置一個新密碼或將提交的密碼與現有的密碼進行比較即可。 后一種情況是通過使用相同的哈希算法運行提交的密碼並比較兩個哈希來處理的。

您的管理員也可能不應該直接設置新密碼,他們應該可以使用向用戶發送電子郵件的功能,該功能只使用一個令牌,用戶可以自己設置新密碼。

這是一個壞主意。 當前,您正在顯示$admininfo['password']作為占位符。 這意味着即使您輸入的密碼類型,其字符也將在屏幕上實際可見。 看着你的肩膀的任何人都可以看到它。 不要這樣

密碼應僅散列和加密后存儲在數據庫中。 有一種方法可以檢查某個明文是否為原始密碼,但是沒有辦法解密散列(除了蠻力外)。 出於明顯的安全原因,這樣做是這樣的。

看一下password_hash()password_verify()

暫無
暫無

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

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