您的位置 首页 java

消息摘要算法——MD5,SHA,MAC

消息摘要算法:防止消息在传递过程中被篡改。

主要有三种常用的:

MD:message Digest 消息摘要

SHA: Secure Hash Algorithm 安全散列算法

Mac:message Authentication code 信息认证码

原理:任何消息经过消息摘要算法后,都会产生唯一的散列值(即“数据指纹”)(同一段消息无论经过多少次相同的消息摘要算法加密,结果都相同),所以如果消息在传送过程中被修改,那么算出来的数据指纹也与原本的消息算出来的不同了,如果没有被修改,则数据指纹是相同的。

特点:单向性(即只有加密,没有解密)

MD5 (算法已被破解)

实现方式:

  • Commons Codec (“CC”, 推荐: 封装了JDK的底层代码,并且提供了 二进制 字节数组向十六进制转化的方法)

  • JDK(没有提供二进制字节数组向十六 进制 转化的方法,想要进行转化,需要借助BC或者CC)

  • Bouncy Castle(“BC”,不推荐,实现比较复杂,这里就忽略不在描述)

导入依赖:

加密方法:

SHA :原理:消息摘要长度(可以定量为加密后的 字符串 的长度)越长,安全性越高

  • MD5:128位二进制摘要(32位16进制字符串)(已破解)

  • SHA1 :160位二进制摘要(40位16进制字符串)(已破解)

  • SHA256 :256位二进制摘要(64位16进制字符串)( 常用 ,在spring security中也有使用到)

mac(又称为Hmac): 原理:在md与sha系列算法的基础上加入了密钥,是三大常用的消息摘要算法中最安全的一个

常用的mac算法:

  • HmacMD5

  • HmacSHA1

HmacSHA256

这三种方式都是得到指定信息的信息摘要,只不过加密的方式是越来越复杂了,越来越难破解了,像MD5和SHA1据说已经被破解了,所以想要最安全的话推荐使用最后一种HmacSHA256或者更长的都行

文章来源:智云一二三科技

文章标题:消息摘要算法——MD5,SHA,MAC

文章地址:https://www.zhihuclub.com/171191.shtml

关于作者: 智云科技

热门文章

网站地图