MD5
使用
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update("aaa".getBytes());//可以多次update,也可以直接update("aaabbb".getBytes)结果一样
md5.update("bbb".getBytes());
byte[] digest = md5.digest();//结果为16位的bytes数组,就是md5的结果
System.out.println(String.format("%032x",new BigInteger(1,digest)));
结果:
6547436690a26a399603a7096e876a2d
用途
- 验证文件完整性
- 存储密码
注意:
使用md5要防止黑客使用彩虹表(md5原始值和结果值的对照表)
可以使用加盐方式防止
总结
- md5是一种常用的哈希算法
- 输出128bits(16bytes)
- 常用于验证数据完整性
- 使用时要考虑彩虹表攻击