欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java使用MD5加密算法,实现等登陆功能

程序员文章站 2022-05-12 20:32:33
...

Java实现MD5加密

为了保护有些数据,就需要采取一些手段来进行数据的加密,防止被别人**。

MD5简介

md5的全称是md5信息摘要算法(英文:MD5 Message-Digest Algorithm ),一种被广泛使用的密码散列函数,可以产生一个128位(16字节,1字节8位)的散列值(常见的是用32位的16进制表示,比如:0caa3b23b8da53f9e4e041d95dc8fa2c),用于确保信息传输的完整一致。

功能实现

1、MD5的工具类


import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
 * 南宫乘风
 */
public class MD5Utils {
    /**
     * MD5加密类
     * @param str 要加密的字符串
     * @return    加密后的字符串
     */
    public static String code(String str){
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(str.getBytes());
            byte[]byteDigest = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < byteDigest.length; offset++) {
                i = byteDigest[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            //32位加密
            return buf.toString();
            // 16位的加密
            //return buf.toString().substring(8, 24);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 测试方法
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(code("111111"));
    }
}

最下面这个是测试方法

Java使用MD5加密算法,实现等登陆功能

2、项目中调用

我在项目的接口中调用MD5的方法

public User checkUser(String username, String password) {
        User user = userRepository.findByUsernameAndPassword(username, MD5Utils.code(password));
        return user;
    }

解析:这就是用户登录把密码传递过来,进行MD5加密后,在和数据库中的密码进行对比(数据库中的密码是MD5格式存储的

Java使用MD5加密算法,实现等登陆功能

3、思路拓展(防止重要信息被盗用)

  1. 账号注册
  2. 密码登录
  3. 信息保护
  4. 资料加密

等等,许多的功能都可以用到这样的方法来进行加密。

 

 

相关标签: MD5 Java