Android所有文章都配视频讲解天花板谈Android开发Android视频讲解面试题

Android面试题-Java安全专题四

2017-06-08  本文已影响275人  小怪兽打葫芦娃

Android程序员面试宝典

安全专题

1.4 消息摘要(Message Digest)

1.4.1 常见算法

MD5、SHA、CRC等

1.4.2 使用场景

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

例如软件下载站数据指纹:

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进制展示的字符位数。

上一篇下一篇

猜你喜欢

热点阅读