MD5加密算法 + 盐(salt)

1、MD5算法介绍

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

2、特点

   2.1. MD5加密没有反向的解密算法。

   2.2. MD5加密算法对于一个字符串多次运算得到的结果是一样的。只要字符串改变了一个任意字符,得到的密文与源字符的密文是完全不一样的。

3、主要作用

在用户注册时,会将密码进行MD5加密,存到数据库中,这样可以防止数据库被恶意攻击得到用户的密码信息。数据库中存的数据如下所示:

 4、实现代码

 public static String encryption(String clearText,int salt){
        char[] clearTextArray=clearText.toCharArray();                   //将明文转换为字符型数据
        for (int i = 0; i < clearTextArray.length; i++) {                // 循环遍历明文字符型数据
            clearTextArray[i]=(char)(clearTextArray[i]+salt);            // 每个字符加上相应的盐值
        }
        String clearTextString=new String(clearTextArray);               // 加盐后的字符型数据转化为字符型数据
        return DigestUtils.md5Hex(clearTextString);
    }
public int Register(String phone, String password){
        boolean isRegister=userDao.findPhone(phone);
        if (!isRegister){
            //手机号可以注册
            // 随机生成盐值
            int min=100,max=1000;
            int salt=(int)(Math.random()*(max-min))+min;

            // 加密明文得到密文
            String psw=Md5Util.encryption(password,salt);

            // 生成随机昵称
            String temp= UUID.randomUUID().toString().replaceAll("-","");
            String nick="用户" + temp.substring(0,18);

5、运行结果为

0ee7ab399edc3691e15fc36be56d8d61(String)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值