数据库的密码是根据填入的字符串 生成的32位MD5码。 现在要读取出来密码 并修改密码。
问题就是:怎么讲32位的MD5码还原成原来的String字符串。。
有会的吗 谢谢、、、
认证0级讲师
我覺得樓主可能是初學者,樓主最後想解決的問題應該是如何修改密碼。這個問題只是修改密碼中出現的一個問題,由於修改密碼想法就錯了,所以才導致提問偏離方向。
然而看到樓上人大段大段的回复,只是抓住了一個初學者不懂的知識點說了一番,結果可能是樓主更加聽不懂你們在說啥。根本沒有給出解決方案或可能解決問題的方案。
解決這個問題的方案是:
你先設定3個input框
然後第一個是讓使用者輸入原始密碼。
第二個和第三個輸入框用來讓使用者輸入新密碼和確認新密碼。
提交後,把使用者原始密碼,使用之前加密方式例如你的md5加密,和資料庫儲存的加密密碼對比,如果一樣,就說明,原始密碼正確。可以確定使用者身分合法。 (至於為什麼要這樣,因為md5不可逆,所以,我們就直接再加密一次,和你對比下,一樣的密碼,加密出來的總該一樣吧。)
如果使用者身分合法,下面你應該懂得,新密碼加密保存起來。這裡省略N多行校驗程式碼。
好吧 MD5根本就不是加密算法好不好。。。。MD5是摘要算法。。。 而摘要算法理论上讲是不需要逆向解码的。
MD5
加密算法
摘要算法
逆向解码
首先,建議題主遇到問題麻煩先去進行搜尋。 其次MD5是一種不可逆的加密演算法,如果是專案需要改密碼,都是進行對使用者輸入密碼進行md5加密後進行配對金鑰的。如果只是想將MD5還原,網路上有許多線上的解密,但只能解出相對簡單的密碼。
最後,建議題主關閉此題,真心無意義,謝謝
天啊嚕~嚇死寶寶了~你居然想解密~
解密
用戶那獲得旧密码和新密码。
旧密码
新密码
把旧密码 md5 加密。
把加密過的旧密码和資料庫的密碼進行比較。
如果一樣,則把新密码md5加密後存入資料庫。
摘要演算法不是這麼好逆向的,當然你可以使用網路上的md5解密的工具。
原理上來說是不可以的, md5是單向加密。 驗證的時候也是比較md5值是否相同。破解的話可以去下現成的彩虹表的數據, 但不是保證百分百出結果的, 當場撞md5要很久。
這個基本上不可能。網路上的解密靠碰,運氣好可能碰到相同的md5值和對應的字串。而且md5值跟字串也不是一一對應的,很多字串的md5都是一樣的…
還原不可能,嘗試碰撞有可能
題主可以百度一下什麼是MD5,它是一种不可逆的算法。可逆的比如Base64等演算法。
Base64
md5還原不了吧。 要不然也不用暴力破解了, 直接還原下好了。 建議搜搜 加鹽PBKDF2演算法。
md5設計出來就不能還原,每次大家驗證就是將密碼轉成32位,然後和資料庫裡存的32位比較;
我覺得樓主可能是初學者,樓主最後想解決的問題應該是如何修改密碼。這個問題只是修改密碼中出現的一個問題,由於修改密碼想法就錯了,所以才導致提問偏離方向。
然而看到樓上人大段大段的回复,只是抓住了一個初學者不懂的知識點說了一番,結果可能是樓主更加聽不懂你們在說啥。根本沒有給出解決方案或可能解決問題的方案。
解決這個問題的方案是:
你先設定3個input框
然後第一個是讓使用者輸入原始密碼。
第二個和第三個輸入框用來讓使用者輸入新密碼和確認新密碼。
提交後,把使用者原始密碼,使用之前加密方式例如你的md5加密,和資料庫儲存的加密密碼對比,如果一樣,就說明,原始密碼正確。可以確定使用者身分合法。 (至於為什麼要這樣,因為md5不可逆,所以,我們就直接再加密一次,和你對比下,一樣的密碼,加密出來的總該一樣吧。)
如果使用者身分合法,下面你應該懂得,新密碼加密保存起來。這裡省略N多行校驗程式碼。
好吧
MD5
根本就不是加密算法
好不好。。。。MD5
是摘要算法
。。。 而摘要算法
理论上讲是不需要逆向解码
的。首先,建議題主遇到問題麻煩先去進行搜尋。
其次MD5是一種不可逆的加密演算法,如果是專案需要改密碼,都是進行對使用者輸入密碼進行md5加密後進行配對金鑰的。如果只是想將MD5還原,網路上有許多線上的解密,但只能解出相對簡單的密碼。
最後,建議題主關閉此題,真心無意義,謝謝
天啊嚕~
嚇死寶寶了~
你居然想
解密
~用戶那獲得
旧密码
和新密码
。把
旧密码
md5 加密。把加密過的
旧密码
和資料庫的密碼進行比較。如果一樣,則把
新密码
md5加密後存入資料庫。摘要演算法不是這麼好逆向的,
當然你可以使用網路上的md5解密的工具。
原理上來說是不可以的, md5是單向加密。 驗證的時候也是比較md5值是否相同。破解的話可以去下現成的彩虹表的數據, 但不是保證百分百出結果的, 當場撞md5要很久。
這個基本上不可能。網路上的解密靠碰,運氣好可能碰到相同的md5值和對應的字串。而且md5值跟字串也不是一一對應的,很多字串的md5都是一樣的…
還原不可能,嘗試碰撞有可能
題主可以百度一下什麼是
MD5
,它是一种不可逆的算法。可逆的比如Base64
等演算法。md5還原不了吧。 要不然也不用暴力破解了, 直接還原下好了。
建議搜搜 加鹽PBKDF2演算法。
md5設計出來就不能還原,每次大家驗證就是將密碼轉成32位,然後和資料庫裡存的32位比較;