搜尋

首頁  >  問答  >  主體

java - 32位的MD5的加密码 怎么还原成原来的String字符串

数据库的密码是根据填入的字符串 生成的32位MD5码。
现在要读取出来密码 并修改密码。

问题就是:怎么讲32位的MD5码还原成原来的String字符串。。

有会的吗 谢谢、、、

PHP中文网PHP中文网2806 天前1620

全部回覆(11)我來回復

  • 怪我咯

    怪我咯2017-04-18 09:42:41

    我覺得樓主可能是初學者,樓主最後想解決的問題應該是如何修改密碼。這個問題只是修改密碼中出現的一個問題,由於修改密碼想法就錯了,所以才導致提問偏離方向。

    然而看到樓上人大段大段的回复,只是抓住了一個初學者不懂的知識點說了一番,結果可能是樓主更加聽不懂你們在說啥。根本沒有給出解決方案或可能解決問題的方案。

    解決這個問題的方案是:

    1. 你先設定3個input框

    2. 然後第一個是讓使用者輸入原始密碼。

    3. 第二個和第三個輸入框用來讓使用者輸入新密碼和確認新密碼。

    提交後,把使用者原始密碼,使用之前加密方式例如你的md5加密,和資料庫儲存的加密密碼對比,如果一樣,就說明,原始密碼正確。可以確定使用者身分合法。 (至於為什麼要這樣,因為md5不可逆,所以,我們就直接再加密一次,和你對比下,一樣的密碼,加密出來的總該一樣吧。)

    如果使用者身分合法,下面你應該懂得,新密碼加密保存起來。這裡省略N多行校驗程式碼。

    回覆
    0
  • 阿神

    阿神2017-04-18 09:42:41

    好吧 MD5根本就不是加密算法好不好。。。。MD5摘要算法。。。 摘要算法理论上讲是不需要逆向解码的。

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:42:41

    首先,建議題主遇到問題麻煩先去進行搜尋。
    其次MD5是一種不可逆的加密演算法,如果是專案需要改密碼,都是進行對使用者輸入密碼進行md5加密後進行配對金鑰的。如果只是想將MD5還原,網路上有許多線上的解密,但只能解出相對簡單的密碼。


    最後,建議題主關閉此題,真心無意義,謝謝

    回覆
    0
  • 迷茫

    迷茫2017-04-18 09:42:41

    天啊嚕~
    嚇死寶寶了~
    你居然想解密~


    • 用戶那獲得旧密码新密码

    • 旧密码 md5 加密。

    • 把加密過的旧密码和資料庫的密碼進行比較。

    • 如果一樣,則把新密码md5加密後存入資料庫。


    摘要演算法不是這麼好逆向的,
    當然你可以使用網路上的md5解密的工具。


    回覆
    0
  • 黄舟

    黄舟2017-04-18 09:42:41

    原理上來說是不可以的, md5是單向加密。 驗證的時候也是比較md5值是否相同。破解的話可以去下現成的彩虹表的數據, 但不是保證百分百出結果的, 當場撞md5要很久。

    回覆
    0
  • 怪我咯

    怪我咯2017-04-18 09:42:41

    這個基本上不可能。網路上的解密靠碰,運氣好可能碰到相同的md5值和對應的字串。而且md5值跟字串也不是一一對應的,很多字串的md5都是一樣的…

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:42:41

    還原不可能,嘗試碰撞有可能

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:42:41

    題主可以百度一下什麼是MD5,它是一种不可逆的算法。可逆的比如Base64等演算法。

    回覆
    0
  • 怪我咯

    怪我咯2017-04-18 09:42:41

    md5還原不了吧。 要不然也不用暴力破解了, 直接還原下好了。
    建議搜搜 加鹽PBKDF2演算法。

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:42:41

    md5設計出來就不能還原,每次大家驗證就是將密碼轉成32位,然後和資料庫裡存的32位比較;

    回覆
    0
  • 取消回覆