数据库的密码是根据填入的字符串 生成的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位对比;