加密是经常需要遇到的,所以总结一些
One–工具
. org.apache.commons.codec.digest.DigestUtils
今后加密就不用到处去找了 md5加密可以返回16 可以返回32
- md5Hex:MD5加密,返回32位字符串
- sha1Hex:SHA-1加密
- sha256Hex:SHA-256加密
- sha512Hex:SHA-512加密
- md5:MD5加密,返回16位字符串
public class Md5Util {
/**
* 对字符串md5加密
*
* @param str
* @return
* @throws Exception
*/
public static String getMD5Str(String str) {
try {
// 生成一个MD5加密计算摘要
MessageDigest md = MessageDigest.getInstance("MD5");
// 计算md5函数
md.update(str.getBytes());
// digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符
// BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值
return new BigInteger(1, md.digest()).toString(16);
} catch (Exception e) {
throw new CustomException("MD5加密出现错误,"+e.toString());
}
}
/**
* 32位MD5加密方法
* 16位小写加密只需getMd5Value("xxx").substring(8, 24);即可
*
* @param sSecret
* @return
*/
public static String getMd5Value(String sSecret) {
try {
MessageDigest bmd5 = MessageDigest.getInstance("MD5");
bmd5.update(sSecret.getBytes());
int i;
StringBuffer buf = new StringBuffer();
byte[] b = bmd5.digest();// 加密
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0){
i += 256;
}
if (i < 16){
buf.append("0");
}
buf.append(Integer.toHexString(i));
}
return buf.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
}
UUID
public static String getUUID(){
return UUID.randomUUID().toString().replace("-", "");
}
来源:CSDN
作者:吧啦蹦吧
链接:https://blog.csdn.net/wlwork66/article/details/103977334