为了账号安全,请及时绑定邮箱和手机立即绑定

什么是MD5?有实例讲解吗?

什么是MD5?有实例讲解吗?

幽冷焰志 2016-06-27 14:22:45
怎样用MD5做登录页面
查看完整描述

5 回答

?
StoneET

TA贡献2条经验 获得超7个赞

先说登陆页面的应用,比如用户创建了密码,你把密码在后台做MD5计算,然后存在数据库里,登陆时,计算前台输入密码的MD5值,和数据库中的做比较,相同则验证成功,完成登陆。

Message Digest Algorithm MD5,中文名是信息摘要算法,严格来说它不属于加密算法,但在实际开发中,由于MD5算法的特性,从原数据计算MD5值很容易,原数据修改的即使很小,MD5值得差异都很大,而且就算已经知道了MD5值,利用对撞很难得到原数据。

查看完整回答
1 反对 回复 2016-06-27
?
kgd

TA贡献17条经验 获得超4个赞


基本概念楼上说的差不多了,简单说一下实现过程:

先建一个工具类,用于将字符串转换为MD5码

public class WebUtil {
       /***
     * MD5加密 生成32位md5码
     */  
    public static String string2MD5(String inStr){  
        MessageDigest md5 = null;  
        try{  
            md5 = MessageDigest.getInstance("MD5");  
        }catch (Exception e){  
            e.printStackTrace();  
            return "";  
        }  
        char[] charArray = inStr.toCharArray();  
        byte[] byteArray = new byte[charArray.length];  
 
        for (int i = 0; i < charArray.length; i++)  
            byteArray[i] = (byte) charArray[i];  
        byte[] md5Bytes = md5.digest(byteArray);  
        StringBuffer hexValue = new StringBuffer();  
        for (int i = 0; i < md5Bytes.length; i++){  
            int val = ((int) md5Bytes[i]) & 0xff;  
            if (val < 16)  
                hexValue.append("0");  
            hexValue.append(Integer.toHexString(val));  
        }  
        return hexValue.toString();  
      }  
}

假设密码为”123456“(md5码为:e10adc3949ba59abbe56e057f20f883e),用户名即连接数据库忽略……下面是登陆的类(当然,在实际运用中不会这么简单)

public class loginClass(){
    public String loginClass(String password){
        String pwdMd5 = WebUtil.string2MD5(password);
        if("e10adc3949ba59abbe56e057f20f883e".equals(pwdMd5)){
            return "这里返回登陆成功的页面地址";
        }else{
            return "这里返回登陆失败的页面地址";
        }
    }
}


查看完整回答
反对 回复 2016-06-28
  • 5 回答
  • 1 关注
  • 3106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信