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

怎样用MD5做登录页面

幽冷焰志
浏览 3107回答 5
5回答

StoneET

先说登陆页面的应用,比如用户创建了密码,你把密码在后台做MD5计算,然后存在数据库里,登陆时,计算前台输入密码的MD5值,和数据库中的做比较,相同则验证成功,完成登陆。Message Digest Algorithm MD5,中文名是信息摘要算法,严格来说它不属于加密算法,但在实际开发中,由于MD5算法的特性,从原数据计算MD5值很容易,原数据修改的即使很小,MD5值得差异都很大,而且就算已经知道了MD5值,利用对撞很难得到原数据。

kgd

基本概念楼上说的差不多了,简单说一下实现过程:先建一个工具类,用于将字符串转换为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 "这里返回登陆失败的页面地址";        }    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java