消息摘要(Message Digest)

常见算法

MD5、SHA、CRC 等

使用场景

  1. 对用户密码进行md5 加密后保存到数据库里
  2. 软件下载站使用消息摘要计算文件指纹,防止被篡改
  3. 数字签名

例如软件下载站数据指纹:
http://dev.mysql.com/downloads/installer/

消息摘要(Message Digest)_第1张图片
Paste_Image.png

使用步骤

1. //常用算法:MD5、SHA、CRC
2. MessageDigest digest = MessageDigest.getInstance("MD5");
3. byte[] result = digest.digest(content.getBytes());
4. //消息摘要的结果一般都是转换成16 进制字符串形式展示
5. String hex = Hex.encode(result);
6. //MD5 结果为16 字节(128 个比特位)、转换为16 进制表示后长度是32 个字符
7. //SHA 结果为20 字节(160 个比特位)、转换为16 进制表示后长度是40 个字符
8. System.out.println(hex);

消息摘要后的结果是固定长度,无论你的数据有多大,哪怕是只有一个字节或者是一个G 的文件,摘要
后的结果都是固定长度。
经常听到有人问这样的问题,MD5 摘要后结果到底是多少位?有的人说是16 位,有的说是128 位,有
的说是32 位。到底是多长,这个时候我们就要明白,16 位指的是字节位数,128 位指的是比特位,32 位
指的结果转换成16 进制展示的字符位数。

你可能感兴趣的:(消息摘要(Message Digest))