安全专题
1.4 消息摘要(Message Digest)
1.4.1 常见算法
MD5、SHA、CRC等
1.4.2 使用场景
- 对用户密码进行md5加密后保存到数据库里
- 软件下载站使用消息摘要计算文件指纹,防止被篡改
- 数字签名(后面知识点)
例如软件下载站数据指纹:
http://dev.mysql.com/downloads/installer/
1.4.3 使用步骤
//常用算法:MD5、SHA、CRC
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] result = digest.digest(content.getBytes());
//消息摘要的结果一般都是转换成16进制字符串形式展示
String hex = Hex.encode(result);
//MD5结果为16字节(128个比特位)、转换为16进制表示后长度是32个字符
//SHA结果为20字节(160个比特位)、转换为16进制表示后长度是40个字符
System.out.println(hex);
消息摘要后的结果是固定长度,无论你的数据有多大,哪怕是只有一个字节或者是一个G的文件,摘要后的结果都是固定长度。
经常听到有人问这样的问题,MD5摘要后结果到底是多少位?有的人说是16位,有的说是128位,有的说是32位。到底是多长,这个时候我们就要明白,16位指的是字节位数,128位指的是比特位,32位指的结果转换成16进制展示的字符位数。
-
欢迎关注微信公众号、长期为您推荐优秀博文、开源项目、视频
-
微信公众号名称:Android干货程序员
网友评论