之前都是在百度找工具类复制粘贴,今天偶然发现可以用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));