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; } }
使用