美文网首页
消息摘要

消息摘要

作者: 火烛明 | 来源:发表于2017-10-31 19:11 被阅读0次

    概述:
    消息摘要:唯一对应一个消息或文本的固定长度的值,是一个单向由Hash加密函数对消息作用而产生的。
    分类:
    1.MD(Message Digest)算法的编程使用
    2.SHA算法的编程使用
    3.HMAC算法的编程使用

    作用: 验证消息的完整性防止在运输途中被串改。

    QQ20171031-093328@2x.png

    一.MD算法的编程使用

    1.初始化
    MessageDigest messageDigest = MessageDigest.getInstance("MD5");
    2.更新
    messageDigest.update(byte[] b);
    3.生成摘要
    byte[] result = messageDigest.digest();
    4.字节数组转16进制字符串

    二.SHA算法的编程使用
    1.初始化
    // SHA-256 , SHA-386,SHA-512
    MessageDigest messageDigest = MessageDigest.getInstance("SHA");

    2.更新
    messageDigest.update(byte[] b);
    3.生成摘要
    byte[] result = messageDigest.digest();
    4.字节数组转16进制字符串

    三.HMAC算法的编程使用
    MD算法和SHA算法缺点容易被篡改所以就有了HMAC
    HMAC融合了MD 和SHA加入了秘钥的支持

    QQ20171031-160958@2x.png

    1.生成秘钥
    1.1 初始化
    KeyGenerator keyGen = KeyGenerator.getInstance("HmacMD5");
    1.2 生产秘钥
    SecretKey secretKey = keyGen.generateKey();
    1.3 得到秘钥的字节数组
    byte[] key = secretKey.getEncoded();

    2.执行摘要
    2.1 从字节数组还原秘钥
    SecretKey secretKey = new SecretKeySpec(key, "HmacMD5");
    2.2 实例化Mac
    Mac mac = Mac.getInstance("HmacMD5");
    2.3 用秘钥初始化Mac
    mac.init(secretKey);
    2.4 执行消息摘要
    byte[] result = mac.doFinal(data);

    相关文章

      网友评论

          本文标题:消息摘要

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