0
我在MySQL數據庫中遇到了有關我的用戶密碼哈希的問題。在開發過程中,我使用內存數據庫(使用Playframework),並且一切正常。但是,當使用持久數據庫時,我恢復的散列與我上傳的散列不匹配。我想因此還有的是某種編碼問題從數據庫恢復後,MD5密碼哈希不匹配
這裏有一些測試,我跑去找問題
Salt at registration: hlsqjnv5vhplrgrsoa4g524b0q
Hash at registration: v�!�ȡuNB͞l�q�
User pwd hash: v!?uNB?lq
Salt at login: hlsqjnv5vhplrgrsoa4g524b0q
Input pwd hash: v�!�ȡuNB͞l�q�
凡「用戶PWD哈希」是哈希從數據庫恢復(我們可以看到它與註冊時的散列不匹配),「輸入pwd散列」是來自登錄表單(與註冊時散列相匹配)的散列。
這裏是我得到的哈希MessageDigest.getInstance("MD5").digest((password+salt).getBytes("UTF-8"))
而且我的數據庫是utf8_general_ci
所以一切都似乎是在UTF-8,但我不能發現問題。
感謝
您是否將bate數組作爲字符串存儲在數據庫中?在轉換過程中可能會丟失一些零件。 – Peanut