正在回答 回答被采纳积分+1
1回答
CrazyCodeGirl
2025-10-19 12:55:13
你好同学,MD5是一种单向散列函数,设计目的就是为了不可逆。也就是说:不能从MD5值“解密”出原始密码;
你数据库里存的只是原始密码的“指纹”,不是加密后的密文。
正确的做法:把输入的密码再做一次MD5,然后比较两个MD5值是否相等即可验证密码是否正确,具体代码如下所示:
public static boolean checkPassword(String inputPwd, String md5InDB) {
String md5OfInput = md5(inputPwd); // 对输入明文做MD5
return md5OfInput.equalsIgnoreCase(md5InDB); // 忽略大小写比较,md5InDB为上一次经过加密后在数据库中存储的“指纹”同学可以尝试使用以上方法找回原有的密码,希望我的解答可以帮助到同学,祝学习愉快!
Java工程师 2024版
- 参与学习 2052 人
- 提交作业 1500 份
- 解答问题 1324 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星