一、引入Maven依赖
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
二、常用API说明
import java.security.MessageDigest;
import org.apache.commons.codec.CharEncoding;
import org.apache.commons.codec.digest.DigestUtils;
/**
* Codec 处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等
* 常用类
* ① CharEncoding 编码,其实目前也是用java.nio.charset.StandardCharsets代替
* ② DigestUtils 加密工具类
*
*/
public class CodecDemo {
private static void testDigestUtils(){
try {
// MD5加密,返回16位字符串
// 控制台乱码, 不清楚是啥原因
System.out.println(new String(DigestUtils.md5("123456")));
// MD5加密,返回32位字符串
System.out.println(DigestUtils.md5Hex("123456"));
// SHA-1加密
System.out.println(new String(DigestUtils.sha1("123456")));
System.out.println(DigestUtils.sha1Hex("123456"));
// SHA-256加密
System.out.println(new String(DigestUtils.sha256("123456")));
System.out.println(DigestUtils.sha256Hex("123456"));
// SHA-512加密
System.out.println(new String(DigestUtils.sha512("123456")));
System.out.println(DigestUtils.sha512Hex("123456"));
//MD5表示加密算法,可以选择其他参数,如SHA-1等
MessageDigest digest = MessageDigest.getInstance("MD5");
//先调用update,再调动digest
digest.update(org.apache.commons.codec.binary.StringUtils.getBytesUtf8("123456"));
byte[] byteResult = digest.digest();
System.out.println(new String(byteResult));
}catch (Exception e){
System.out.println(" DigestUtils Error");
e.printStackTrace();
}
}
private static void testCharEncoding(){
// 可以用java.nio.charset.StandardCharsets替换org.apache.commons.codec.CharEncoding
System.out.println(CharEncoding.UTF_8);
}
public static void main(String[] args) {
//CodecDemo.testCharEncoding();
CodecDemo.testDigestUtils();
}
}