一、引入场景
在如今这个大数据的时代,数据安全问题日益备受关注。如何更好的保护自身隐私数据变得越来越重要。对于一个登录注册而言,如果用户注册完之后,直接将数据以明文的方式保存在数据库中,很明显是不安全的。那么我们就需要将密码进行加密保存。
二、加密算法的种类
1、对称加密:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES
2、非对称加密:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
3、hash加密:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC-MD5、HMAC-SHA1
三、使用Java工具类进行MD5加密
Java提供了一个工具类进行MD5加密,首先我们需要引入一下依赖:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.3</version>
</dependency>
当然这个时候就有人说,天天依赖,我又没学过maven!!!! 这个时候,你可以通过以下地址,下载这个jar包:(Java所有的jar包和jar包文档都可以在这里下载得到)
Central Repository: commons-codec/commons-codec/1.3https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.3/
四、新建一个普通的测试类:
import org.apache.commons.codec.digest.DigestUtils;
public class test03 {
public static void main(String[] args) {
String s = DigestUtils.md5Hex("123");
System.out.println(s);
}
}
输出结果(32位字符):
需要注意的是,MD5算法是单向加密的,“不能”解密(其实有些软件依旧可以解密出来,但是需要你是尊贵的会员哦!)
五、其他工具类:
md5Hex:MD5加密,返回32位字符串
sha1Hex:SHA-1加密
sha256Hex:SHA-256加密
sha512Hex:SHA-512加密
md5:MD5加密,返回16位字符串复制代码
有兴趣的话,就去试试吧!这里就不在赘述!