/*** 对字符串进行32位MD5加密* @param str* @return*/public static String EncodeByMD5(String str) {try {// 生成一个MD5加密计算摘要MessageDigest md = MessageDigest.getInstance("MD5");// 计算md5函数md.update(str.getBytes("UTF-8"));// digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符// BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值String md5=new BigInteger(1, md.digest()).toString(16);//BigInteger会把0省略掉,需补全至32位return fillMD5(md5);} catch (Exception e) {throw new RuntimeException("MD5加密错误:"+e.getMessage(),e);}}private static String fillMD5(String md5){//如果不够32位则回调自身补零,最后返回32位长度的签名return md5.length()==32?md5:fillMD5("0"+md5);}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!