2016-11-16 84 views
0

編着MD5版本的字段添加更多的信息查詢wiith ID

我需要使用MySQL的MD5函數中調用它的ID字段(uid)選擇一個項目。我的用戶名爲recover_db,它有一個單獨的數據庫,其中包含用戶標識的md5哈希值和一個時間戳。

目前該用戶訪問一個鏈接是這樣的:

recover-MD%HASHEDUSERID.html 

然後系統採用的是MD%HASHEDUSERID從URL並檢查它是否存在於recover_db和如果這樣做,讓他們恢復的帳戶。還有一些其他的東西用於安全性,但是我不會將用戶標識存儲在recover_db中,只是它的MD5值。我用下面這樣做:

md5(90*13/12*56+$id) 

現在,我需要檢查用戶數據庫,並使用我已保存的MD5值獲得真正的帳戶ID。我正在使用以下查詢來執行此操作:

$query = "SELECT uid FROM users where md5(90*13/12*56+uid)='".$md5accID."'"; 

不幸的是,這是返回沒有結果。有沒有辦法從recover_db使用它的md5版本從users數據庫獲取真實用戶ID?如果可以,我想避免將用戶標識存儲在recover_db中。

回答

1

將原始用戶標識與一起保存在恢復數據庫中的散列(hasheduid)中。然後做

$query = "SELECT origuid FROM users where hasheduid='".$md5accID."'"; 

檢索原始用戶ID。

+0

自您發佈以來,我更新了一些問題。當你回答大聲笑時,我正在編輯它以更好地說出它。雖然這個建議可行,但我希望避免在可能的情況下在recover_db上存儲** REAL **用戶標識。如果這是不可能的,那麼我會以這種方式存儲它,並改變我的md5的東西。 – Kaboom

+0

儘管我不想在數據庫中存儲真正的用戶標識,但我決定以這種方式更容易。 – Kaboom