MD5加密(mysql用户密码加密)

1.MD5简介
其实严格上来说MD5并不能说是加密算法,只能说是哈希算法。理论上每个字符串都有唯一一个哈希值与之相对应,但是这并不是绝对的,有一定几率会发生冲突,就叫做哈希冲突,这是评价哈希算法好坏的重要指标。

2.不可逆推
理论上使用md5加密过的明文是不可以逆推的,但是却可以使用穷举法,实现穷举出一个字典,在字典中直接使用哈希值进行发查字符串。 我个人觉得完全可以将一段明文进行MD5加密,然后将加密后的信息再进行加密,这样逆推起来就没有那么容易了。

3.加密解密
有网页端的在线加密、 在线解密工具,自行百度使用。

4.项目中的使用
在javaweb项目中,一般对数据 库操作中进行密码的插入操作往往需要对密码进行加密操作。有一些网站设置有找回密码功能感觉他们的数据就是明文的。

5.实例 : 商家注册接口实现
基本逻辑 :
淘宝用户注册成商家,注册时需要获取用户表中的用名 密码进行对比,看是否相同,相同再执行其他操作。获取表单提交的密码,导入apache提供的md5 jar包,然后使用
String changedPswd = DigestUtils.md5Hex(pswd); 对密码进行加密之后再放入数据库。

  //商家注册接口 (Mapper->注册)
//MD5是不可逆加密的,所以想判断用户密码是否已经存在(注册),只有将加密过的用户密码取出来,再把商家输入的表单密码拿过来加密比较是否相同。
@RequestMapping(value="businessRegister",method=RequestMethod.POST)
@ResponseBody
public Map register(MultipartFile[] photo, Business business,Integer userId) {
      Map map = new HashMap();
      User user = userService.findUserByUserId(userId);
      //获取用户的账号
      String userTelAccount = user.getUserMemberName();
      
      //获取用户的密码
      String userPwd = user.getUserPassword();
      //MD5加密用户密码
    //  String changeduserPwd = DigestUtils.md5Hex(userPwd);
      
      //表单提交过来的密码
      String pswd = business.getBusinessPassword();
      //MD5加密密码
      String changedPswd = DigestUtils.md5Hex(pswd);
      //set到密码中进行插入数据库操作
      business.setBusinessPassword(changedPswd);
      
      //判断用户的用户名跟密码是否与商家的用户名与密码相同 这里是使用用户账号密码
      if(userTelAccount.equals(business.getBusinessLoginTel()) && changedPswd.equals(userPwd)){  //用户表中已经对密码进行了加密了,所以这里不需要再进行加密了判断了,直接使用equals进行判断就行了。
          for(int i=0;i 0){
                map.put("reason", "商家所有图片信息上传成功!");
                map.put("resultCode", ConstantData.STATUS_CODE_1);
            }else{
                map.put("reason", "商家所有图片信息上传失败!");
                map.put("resultCode", ConstantData.STATUS_CODE_2);
            }
            
      }else{
         //用户名密码不匹配
         map.put("reason", "用户名或者密码输入错误!"); 
         map.put("resultCode",ConstantData.STATUS_CODE_6);
      }
      
      return map;
}

MD5加密(mysql用户密码加密)_第1张图片
image.png

你可能感兴趣的:(MD5加密(mysql用户密码加密))