MD5加密工具类
/**
* MD5加密
*
* @param source 明文
* @return 加密后的字符串
*/
public static String md5(String source) {
// 1.对明文进行判断
if (source == null || source.length() == 0) {
// 2. 抛出一个异常
throw new RuntimeException(CrowdConstant.MESSAGE_STRING_INVALID);
}
// 3. 接下来进行MD5加密
try {
// 4.创建messageDigest对象
// algorithm是算法的名称
String algorithm = "md5";
MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
// 将source转成bytes数组
byte[] input = source.getBytes();
// 5.调用messageDigest对象的digest() 获得16位长度
byte[] output = messageDigest.digest(input);
// 6 将output 转成字符串类型
// 6.1 创建bigInteger对象
// signum,1代表整数 0 代表0 -1 代表负数。
int signum = 1;
BigInteger bigInteger = new BigInteger(signum, output);
// 6.2 将bigInteger类型通过toString(radix)转成16进制的字符串
// 指名16进制
int radix = 16;
String encoded = bigInteger.toString(radix).toUpperCase();
return encoded;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
MD5加密 主要是通过MessageDigest 对象的digest()方法实现。