MAC信息摘要

MAC(Message Authentication Code ,消息认证码算法)是含有密钥散列函数算法,兼容MD和SHA算法的特性,并在此基础上加入了密钥。因此,MAC也称为HMAC。

        MAC算法集合了MD和SHA两大系列消息摘要算法。MD系列有HmacMD2、HmacMD4、HmacMD5三种算法。SHA系列的有HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512这五种算法。MAC算法摘要值的长度与具体的摘要算法的长度一直。

如HmacMD5即使对应MD5算法的摘要值长度128位。具体如下:

MAC算法的实现

1、Java 自带类实现 

      注意:Java自动类仅支持HmacMD5、HmacSHA1、HmacSHA256、HmacSHA384、HmacSHA512这几种算法

      Mac算法是带有密钥的消息摘要算法,所以其实现分两步

1)创建密钥

2)获得消息摘要

具体实现代码如下:


       /**

*1、创建密钥

*/

//创建对应摘要算法(如MD5\SHA1\SHA256等)密钥生成器对象KeyGenerator

KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5");

//产生密钥

SecretKey secretKey = keyGenerator.generateKey();

//得到密钥的字节数组

//byte[] key = secretKey.getEncoded();

/**

* 2、根据密钥产生mac摘要

*/

//创建对应摘要算法(如MD5\SHA1\SHA256等)的Mac实例对象

Mac mac = Mac.getInstance(secretKey.getAlgorithm());

//初始化该mac实例对象的密钥

mac.init(secretKey);

//获取mac摘要信息

byte[]result = mac.doFinal("中国".getBytes());

System.out.println(toHexString(result));  


来自为知笔记(Wiz)

时间: 2024-10-29 02:07:55

MAC信息摘要的相关文章

网络安全-安全散列函数,信息摘要SHA-1,MD5原理

-----------------------------------------------欢迎查看网络安全连载博客-----------------------------------[网络安全]-安全散列函数.信息摘要SHA-1.MD5算法       [网络安全]-非对称加密,RSA算法,数字签名[网络安全]-RSA非对称算法算法.数字签名                         [网络安全]-建立安全socket连接.登录[网络安全]-[数字证书,证书链]-----------

09.openssl信息摘要和数字签名指令

9.1 信息摘要算法和数字签名 信息摘要算法是现代密码学算法中不可缺少的一部分,与对称算法和非对称加密算法不同,他不是一种可逆的操作,经过它进行处理的数据,输出数据长度一般来说总是固定的,并且理论上很难从输出恢复输入. 数字签名操作一般采用非对称算法(公开密钥算法),其实质是使用费对称加密算法密钥对的私钥对数据进行加密,而数字签名的验证操作则是使用公钥对数据进行解密操作,然后比较得到的原始文件跟解密得到的文件信息是否一致,如果一致,则认为数字签名有效,从而确认文件的有效性. 指令 指令功能描述

信息加密之信息摘要加密MD2、MD4、MD5

对于用户数据的保密一直是各个互联网企业头疼的事,那如何防止用户的个人信息泄露呢?今天为大家介绍一种最简单的加密方式--信息摘要算法MD.它如何来保护用户的个人信息呢?其实很简单,当获得到用户的信息后,先对其进行加密,然后将加密的结果保存到数据库,这样即使被盗,用户的数据也不会丢失.下面上代码: JAVA的jdk提供了MD2和MD5的加密方式, JAVA不支持MD4的jdk加密方式,jdk的实现如下: private static void MD2_jdk(){ try { MessageDige

SHA信息摘要

SHA算法是在MD4的基础上演进而来的,通过SHA算法能够获得一个固定长度的摘要信息. SHA算法系列有SHA-1(也成为SHA),SHA-224,SHA-256,SHA-384和SHA-512这五种算法,通常后面四中算法并称为SHA-2算法,它们都是以长度来命名的. SHA与MD算法的不同之处主要在于摘要长度,SHA算法的摘要长度更长,安全性更高 SHA算法的长度说明 SHA算法实现(类似MD5的实现) 1.Java自带的MessageDigest类 注意:仅支持SHA-1,SHA-256,S

信息摘要

信息摘要算法实际上就是一个单向散列函数.数据块经过单向散列函数得到一个固定长度的散列值.攻击者不可能通过散列值而编造数据块,使得编造的数据块的散列值和原数据块的散列值相同. 常用的信息摘要算法有MD5,SHA等.市场上广泛使用的MD5,SHA算法的散列值分别为128和160位,由于SHA通长采用的密钥长度较长,因此安全性高于MD5. MD5:128位 SHA:160位 原文地址:https://www.cnblogs.com/hellohero55/p/12122027.html

python实现获取系统版本和mac信息上传到指定接口

import os,platform,uuid,urllib.parse,urllib.request,json def BeforeSystemRequests(): ''' the systeminfo uploads to api of .. ''' def get_system_version(): system_name = platform.system() if system_name == 'Windows' and os.name == 'nt': system_machine

SHA1 对文件求信息摘要的实现

{功能描述}可以用于分析下载文件的SHA1值与网上提供的SHA1值是否相等. {代码实现} package sup.orange.learn; import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * Created by re-x on 11/4/14. *

PHPStorm 常用 设置配置 和快捷键大全 Win/Mac

[转自 http://blog.csdn.net/fenglailea/article/details/53350080] PHPStorm 下载及主题样式下载 http://www.lanmps.com/lanmps-tools.html 风.fox 主题 Preferences->Appearance & Behavior ->Appearance Theme 选择 Darcual 界面字体及大小 Preferences->Appearance & Behavior

消息摘要算法-MAC算法系列

一.简述 mac(Message Authentication Code,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥.因此MAC算法也经常被称作HMAC算法.关于hmac算法的详情可以参看RFC 2104(http://www.ietf.org/rfc/rfc2104.txt),这里包含了HmacMD5算法的C语言实现. 这里需要说明的是经过mac算法得到的摘要值也可以使用十六进制编码表示,其摘要值得长度与实现算法的摘要值长度相同.例如 Hmac