javascript - java怎么去判断md5加密的密码啊?

 PANJIANSHUANG_406 发布于 2022-11-12 11:35
if(!password.equals(result.getString("password"))){
                throw new PasswordException("密码错误");
            }

密码是123456
但是数据库里是已经md5加密后的字符了

表单传过来的是明文123456
现在是抛出异常“密码错误”
要怎么进行MD5判断才正确?

2 个回答
  • 对两次的加密字符进行比较,MD5加密的结果是一样的,所以每次进行加密后的密文进行匹配比较。
    java代码加密

    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    public class MD5Utils {
        public static void main(String[] args) {
            String passWord = "123456";
            StringBuilder sb = new StringBuilder();
            //获取数据摘要器
            try {
                MessageDigest messageDigest = MessageDigest.getInstance("MD5");
                //将一个byte数组进行加密操作,返回的是一个加密的byte数组,二进制的哈西计算,md5加密的第一步
                byte[] digest = messageDigest.digest(passWord.getBytes());
                for (int i = 0; i < digest.length; i++) {
                    int result = digest[i] & 0xff;
                    //将得到的int类型的值转化为16进制的值
                    String hexString = Integer.toHexString(result);
                    if (hexString.length()<2){//系统会自动把0省略,所以添加0
                       sb.append("0");
                    }
                    sb.append(hexString);
                }
                System.out.println(sb.toString());
            } catch (NoSuchAlgorithmException e) {//找不到加密方式异常
                e.printStackTrace();
            }
    
        }
    }

    MD5加密

    2022-11-12 15:19 回答
  • 把传过来的明文先加密,然后再和数据库中的密码做比较

    2022-11-12 15:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有