MD5 MD5 -- message-digest algorithm 5 (信息-摘要算法)缩写,
广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值。
好比现在的ISO校验,都是MD5校验。怎么用?当然是把ISO经过MD5后产生MD5的值。
一般下载linux-ISO的朋友都见过下载链接旁边放着MD5的串。就是用来验证文件是否一致的。
广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值。
好比现在的ISO校验,都是MD5校验。怎么用?当然是把ISO经过MD5后产生MD5的值。
一般下载linux-ISO的朋友都见过下载链接旁边放着MD5的串。就是用来验证文件是否一致的。
通常我们不直接使用MD5字节码,因为直接字符化一般是不可读的。通常将MD5产生的字节数组交给BASE64再加密一次,得到相应的可读字符串。
public class MD5Test {
Logger logger = Logger.getLogger(this.getClass().getName());
String charset_utf8 = "UTF-8";
private String srcStr = "壹贰叁肆伍陆柒捌玖拾佰仟万亿零整元角分";
public static final String KEY_SHA = "SHA";
public static final String KEY_MD5 = "MD5";
@Test
public void test1() {
try {
MessageDigest md5 = MessageDigest.getInstance(KEY_MD5);
md5.update(srcStr.getBytes(charset_utf8));
byte[] md5s = md5.digest();
String enmd5Base64Str = Base64.getEncoder().encodeToString(md5s);
logger.info(new String(md5s, charset_utf8));
logger.info(enmd5Base64Str);
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(MD5Test.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(MD5Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
}