1.消息摘要概述 消息摘要(Message Digest)又称为数字摘要(Digital Digest).它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生.如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了.因此消息摘要保证了消息的完整性. 消息摘要采用单向Hash函数将需加密的明文"摘要"成一串固定位数(如128bit)的密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长…
SHA是消息摘要算法的一种实现方式,前面已经总结过MD2\4\5的实现,接下来就为大家总结一下SHA的实现. SHA的jdk实现: private static void SHA_JDK(){ try { MessageDigest digest = MessageDigest.getInstance("SHA");//我们可以通过SHA\SHA-1\SHA-384\SHA-256\SHA-512来获得不同的消息摘要密钥 digest.update(src.getBytes()); S…
Java 加密解密之消息摘要算法(MD5 SHA MAC) 消息摘要 消息摘要(Message Digest)又称为数字摘要(Digital Digest). 它是一个唯一相应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生.假设消息在途中改变了.则接收者通过对收到消息的新产生的摘要与原摘要比較.就可知道消息是否被改变了.因此消息摘要保证了消息的完整性.消息摘要採用单向Hash 函数将需加密 的明文"摘要"成一串128bit的密文.这一串密文亦称为数字指纹…
一.简述 mac(Message Authentication Code,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥.因此MAC算法也经常被称作HMAC算法.关于hmac算法的详情可以参看RFC 2104(http://www.ietf.org/rfc/rfc2104.txt),这里包含了HmacMD5算法的C语言实现. 这里需要说明的是经过mac算法得到的摘要值也可以使用十六进制编码表示,其摘要值得长度与实现算法的摘要值长度相同.例如 Hmac…
注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第6章“验证数据完整性--消息摘要算法” 5.1.mac(又称为Hmac) 原理:在md与sha系列算法的基础上加入了密钥,是三大常用的消息摘要算法中最安全的一个. 常用的mac算法: HmacMD5 HmacSHA1 HmacSHA256 5.2.实现方式 JDK(缺少二进制字节数组转十六进制的工具,可借助CC或BC的工具类完成) Commons Codec(CC,在1.10版本中加入的,其中,产生相应算法密钥的API没有找到,如…
MAC是消息摘要算法的第三种实现方式,另外两种方式分别为:MD2\4\5.SHA. MAC的jdk实现:1.默认密钥方式 private static void MAC_JDK(){ try { KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5");//初始化KeyGenerator SecretKey secretKey = keyGenerator.generateKey();//产生密钥 byte[] ke…
注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第6章“验证数据完整性--消息摘要算法” 4.1.SHA 原理:消息摘要长度(可以定量为加密后的字符串的长度)越长,安全性越高 MD5:128位二进制摘要(32位16进制字符串)(已破解) SHA1:160位二进制摘要(40位16进制字符串)(已破解) SHA256:256位二进制摘要(64位16进制字符串)(常用,在spring security中也有使用到) 实现方式: Commons Codec(“CC”,最推荐,因为封装了J…
一.简述 mac(Message Authentication Code.消息认证码算法)是含有密钥散列函数算法.兼容了MD和SHA算法的特性,并在此基础上加上了密钥.因此MAC算法也常常被称作HMAC算法.关于hmac算法的详情能够參看RFC 2104(http://www.ietf.org/rfc/rfc2104.txt).这里包括了HmacMD5算法的C语言实现. 这里须要说明的是经过mac算法得到的摘要值也能够使用十六进制编码表示.其摘要值得长度与实现算法的摘要值长度同样.比如 Hmac…
简介 消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,即单向加密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文. 消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用.由于其加密计算的工作量相当巨大,所以以前的这种算法通常只用于数据量有限的情况下的加密,例如计算机的口令就是用不可逆加密算法加密的 用途 一般地,把对一个信息的摘要称为该消息的指纹或数字签名,数字签名是保证信息的完整性和不可否认性的方法.消息摘要算法适合作为数字签名算法,也是数字…
消息摘要算法是一种单向加密算法 主要用于验证数据完整性,也是数字签名的核心算法 消息鉴别:指在接收方将原始信息进行摘要,然后与接收到的摘要信息进行对比 a.MD家族 – MD5(128位摘要信息) MD算法的作用流程 public class MDFamily { private static final String str = "鲤鱼精"; public static void main(String[] args) { jdkMD("MD5"); ccMD5(…