之前都是在百度找工具类复制粘贴,今天偶然发现可以用spring内置的工具类及maven导包等方式来解决加密问题,因此做个记录。

MD5加密

spring项目有内置的工具类DigestUtils可用于MD5加密:

String s = DigestUtils.md5DigestAsHex("123456".getBytes());
System.out.println(s);

控制台输出结果:

e10adc3949ba59abbe56e057f20f883e

非Spring项目可以在pom文件中导入依赖:

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.12</version>
</dependency>

在代码中采用以下的方法获取MD5值:

String s = DigestUtils.md5Hex("123456");
System.out.println(s);

在控制台中输出的结果一致,但我还是更偏爱第二种,毕竟导入依赖后使用起来较前者而言还挺轻便的=v=

Base64加密

过分了!这个居然在java里面有封装好的方法!那我之前上网找工具类干嘛呢。。。

(好像是jdk1.8后才支持的,那我之前学的是1.7应该可以甩锅了=。=~)

话不多说上代码,用的就是java.util下的Base64工具类,用法跟上面的第一种MD5加密有点像。

加密过程

String s = "123456";
String encode = Base64.getEncoder().encodeToString(s.getBytes());
System.out.println(encode);

控制台输出结果:

MTIzNDU2

解密过程

byte[] decode = Base64.getDecoder().decode(s);
 System.out.println(new String(decode));

控制台输出结果:

123456

jdk1.8以下版本可以使用上方导入的maven依赖commons-codec中的Base64工具类进行加密解密,输出结果同上:

//加密
byte[] encode = Base64.encodeBase64(s.getBytes());
System.out.println(new String(encode));
//解密
byte[] decode = Base64.decodeBase64(encode);
System.out.println(new String(decode));
08-07 10:12