84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
数据库的密码是根据填入的字符串 生成的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位对比;