Android面试题-Java安全专题四

作者: 小怪兽打葫芦娃 | 来源:发表于2017-06-08 08:59 被阅读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进制展示的字符位数。

    • 欢迎关注微信公众号、长期为您推荐优秀博文、开源项目、视频

    • 微信公众号名称:Android干货程序员

    相关文章

      网友评论

        本文标题:Android面试题-Java安全专题四

        本文链接:https://www.haomeiwen.com/subject/gbszfxtx.html