18 MD5加密

       1. MD5概述

              MD5是一种加密算法。可以用于数据加密、文件快传、文件校验 、数据压缩等方面。

              MD5还被称之为数据摘要算法,或数据指纹算法。 

              a. 特点:

                     i. 经过加密后的数据,是不可破译的,无法得到原有的明文内容。

                     ii. 经过加密的数据,都是128位2进制数据组成。通常会把它书写成32位16进制数据。

                     iii. 任何形式的数据,经过加密之后,都会变为二进制数据,长度为32位16进制数据。

                     iv. 同一份数据经过md5加密之后,一定会得到同一个结果。

       2. MD5密码数据库中的数据

              数据库中的密码, 使用,这是mysql数据库自带的一个函数

              update user set password = md5(password);

             

              在数据库加密之后,代码中的密码也应当加密,否则就会出现明文密码与密码密码做判断的情况,永远无法匹配。

创建MD5Utils工具类:

package com.easymall.utils;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Utils {
    /** * 使用md5的算法进行加密 */
    public static String md5(String plainText) {
        byte[] secretBytes = null;
        try {
            secretBytes = MessageDigest.getInstance("md5").digest(
                    plainText.getBytes());
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("没有md5这个算法!");
        }
        String md5code = new BigInteger(1, secretBytes).toString(16);
        for (int i = 0; i < 32 - md5code.length(); i++) {
            md5code = "0" + md5code;
        }
        return md5code;
    }
}

使用

原文地址:https://www.cnblogs.com/xuwangqi/p/11383203.html