[英]MySQL ENCRYPT password but how to DECRYPT?
我正在閱讀本教程,並且正在使用ENCRYPT MySQL函數。
但是現在我有一個問題,如何在MySQL或php中解密加密的密碼? 我想比較一下輸入的密碼是否與加密的密碼相同。
我該如何比較? MySQL必須使用ENCRYPT函數加密!
我正在搜索,但找不到任何如何解密ENCRYPT MySQL函數的信息...
ENCRYPT
使用的是一種單方法哈希算法,沒有DECRYPT
..這就是加密密碼的含義:黑客不應選擇查看明文密碼。
當您需要將db中的密碼與用戶輸入的密碼進行比較時,請使用這樣的查詢(使用准備好的查詢)
SELECT * FROM `user`
WHERE `name` = 'hek2mgl`
AND `password` = ENCRYPT('user_input', `password`)
ENCRYPT
函數將輸出以鹽本身為前綴的“鹽漬”字符串,因此將加密的密碼反饋給它將重新提供原始鹽。
您無法解密密碼-該密碼已通過單向加密進行了加密。
您需要做的是加密輸入的密碼,並將結果與存儲的加密密碼進行比較。
您不需要解密密碼。 為了檢查用戶是否提交了正確的密碼,只需重新加密用戶提供的密碼,然后檢查它是否與數據庫中存儲的密碼匹配。
而且,簡單的哈希函數就足夠了(避免使用MD5,並使用鹽來防止字典或彩虹表攻擊!)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.