用于对字符串进行摘要加密;一般加密之后是不可逆的;
摘要是采用任意大小的数据并输出固定长度散列值的安全单向散列函数。
所在的包为:java.security.MessageDigest;
其中需要用到两个重要方法:
1.getInstance();
-
返回实现指定摘要算法的MessageDigest对象。
2.digest();
-
通过执行最后的操作来完成哈希计算。
放上代码:
import java.math.BigInteger;
import java.security.MessageDigest;
public class MD5Utils {
//txt为要加密的字符串
public static String MD5UtilsTest(String txt) throws Exception {
//初始化一个空的字节数组
byte[] md = null;
try{
//获取MessageDigest对象,对字符串转化为的字节数组进行哈希计算
md = MessageDigest.getInstance("MD5").digest(txt.getBytes());
}catch (Exception e) {
//抛出运行时异常
throw new RuntimeException("md5加密异常!");
}
//转化为16进制
String md5Code = new BigInteger(1, md).toString(16);
//如果加密后的字节不满32位就在前面补“0”
for(int i = 0; i < 32 - md5Code.length(); i++) {
md5Code = "0" + md5Code;
}
return md5Code;
}
public static void main(String[] args) throws Exception {
System.out.println(MD5UtilsTest("123"));
}
}
测试结果: