MD5简单加密
来源:互联网 发布:李谷一 知乎 编辑:程序博客网 时间:2024/06/05 18:08
MD5工具类
public class MyMD5Util { public static String md5(String password) throws NoSuchAlgorithmException{ //生成实现指定摘要算法的 MessageDigest 对象。 MessageDigest md5=MessageDigest.getInstance("MD5"); //使用指定的字节数组跟新摘要 md5.update(password.getBytes()); //调用摘要方法返回一个16位的byte数组 byte [] b=md5.digest(); //把数组转换成字符串 [95, 77, -52, 59, 90, -89, 101, -42, 29, -125, 39, -34, -72, -126, -49, -103]// System.out.println(Arrays.toString(b)); String str=""; //用来接受新生成的字符串 int bvalue=0; //接受B[i]的值,byte+一个数 如果>127会成负数 for (int i = 0; i < b.length; i++) { bvalue=b[i]; if(b[i]<0){ bvalue+=256; //把负数转换成正数 自己想怎么定义怎么定义,大于0就行 //最好大于16 Integer.toHexString(x); x大于等于16会形成一个2位的二进制数字 //小于16只有一位,不方便统计位数 } //java.lang.Integer.toHexString() 方法返回为无符号整数基数为16的整数参数的字符串表示形式。 //以下字符作为十六进制数字:0123456789ABCDEF String s=Integer.toHexString(bvalue); //一个两位的十六静止数字 str+=s; //16次 所以是32位 } return str; }}
注册的时候进行密码加密:
@Override public TaoTaoResult register(TbUser user) { // TODO Auto-generated method stub //补全user信息 user.setCreated(new Date()); user.setUpdated(new Date()); //密码加密 MD5加密 //生成一个MD5加密计算 String encryptedPwd=null; try { encryptedPwd=MyMD5Util.md5(user.getPassword()); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } user.setPassword(encryptedPwd); userMapper.insertSelective(user); return new TaoTaoResult(200, null); }
登录的时候将传过来的密码进行同样的加密,然后在对面数据库中的密码,判断是否相同
@Override public TaoTaoResult login(String username,String password) { // TODO Auto-generated method stub //根据username获取用户信息 TbUserExample example =new TbUserExample(); example.createCriteria().andUsernameEqualTo(username); List<TbUser> list=userMapper.selectByExample(example); //把pssword进行加密 String encryptedPwd=null; try { encryptedPwd=MyMD5Util.md5(password); } catch (NoSuchAlgorithmException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } //进行比较 if(list.size()==0||list==null){ return new TaoTaoResult(400, false, "帐号不存在"); }else{ //判断密码是否匹配 if(list.get(0).getPassword().equals(encryptedPwd)){ //帐号密码匹配 //生成token,把token保存到redis //返回登录成功 把token写入到cookie String token=UUID.randomUUID().toString(); //jedis注入jedisCluster //value 是对象信息 ObjectMapper mapper=new ObjectMapper(); String json=null; try { json = mapper.writeValueAsString(list.get(0)); } catch (JsonProcessingException e) { // TODO Auto-generated catch block e.printStackTrace(); } jedisCluster.set(token, json); //保存到redis里面 jedisCluster.set("USER_LOGIN_SUCCESS:"+token, json); //设置过期时间 jedisCluster.expire("USER_LOGIN_SUCCESS:"+token, 30*60); return new TaoTaoResult(200, "USER_LOGIN_SUCCESS:"+token, "ok"); }else{ return new TaoTaoResult(400, false, "密码错误"); } } }
阅读全文
0 0
- MD5加密和简单加密
- MD5简单加密
- 简单MD5加密
- MD5简单加密
- md5加密简单说明
- MD5简单加密
- md5加密简单实现
- 简单md5加密
- java简单MD5加密
- 简单MD5加密方法
- iOS简单MD5加密
- 简单MD5加密类
- 简单的MD5加密
- MD5加密简单应用
- MD5简单加密
- 简单实现MD5加密
- C# 简单使用 MD5 加密
- Java 简单的MD5加密
- Gyro-3电子陀螺二次开发
- 删除自己的资源
- 递归与分治——排列问题
- Django 出现:Could not parse the remainder: 'date::'Y /m /d''
- Qt加载磁盘文件和对文件内容进行过滤
- MD5简单加密
- 单源最短路径算法(Dijkstra算法)
- 蒟蒻复习之-----Tarjan
- 在Linux下安装MySQL
- 文章获取与单词统计排序
- [bzoj4552][Tjoi2016&Heoi2016]排序 二分+线段树
- 河城荷取 二分答案 最大流
- 51Nod 1035 最长的循环节
- [java]创建新数组的三种方式