消息摘要算法
1. 概念
消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得
到相同的密文。
2. 特点
a. 无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最
终有160比特位的输出,SHA-1的变体可以产生192比特位和256比特位的消息摘要。一般认为,摘要的最终输出越长,该摘要算法就越安全
b. 一般地,只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出
c. 只能进行正向的信息摘要,而无法从摘要中恢复出任何的消息,甚至根本就找不到任何与原信息相关的信息
3. 包含
消息摘要算法包括
MD(Message Digest 消息摘要算法),
SHA(Secure Hash Agorithm 安全散列算法),
MAC(Message Authentication Code 消息谁码算法)
共3类系列
4. MAC
MAC是含用密钥的散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加入了密钥,所以MAC在安全性方面更强一些。SUN也提供了MAC
算法的简单实现
import javax.crypto.KeyGenerator;
import javax.crypto.Mac
import javax.crypto.SpecreKeySpec;
import javax.crypto.SecretKey;
下面的HmacMD5可替换为
HmacSHA1
HmacSHA256
HmacSHA384
HmacSHA512
public static initHmacMD5Key() throws Exception{
KeyGenerator keyGenerator=KeyGenerator.getInstance("HmacMD5")
SecretKey secretKey=KeyGenerator.generateKey();
return secretKey.getEncode();
}
public static byte[] encodeHmacMD5(byte[] data,byte[] key){
SecretKey secretKey=new SecretKeySpec(keyC");
Mac mac=mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
return mac.doFinal(data);
byte[] key=initHmacMD5Key()
byte[] data1=encodeHamcMD5(str.getBytes(),key);
Bouncy Castle 也实现了此算法
5. CRC 的实现
import java.Util.zip.CRC32
CRC32 crc32=new CRC32();
crc32.update(str.getBytes())
String hex=Long.toHexString(crc32.getValue());
分享到:
相关推荐
SSL/TLS协议结合了多种密码学技术,包括加密算法、消息摘要算法(哈希算法)以及数字签名等,确保了通信的安全性。 1. 加密算法: 加密算法是SSL/TLS协议的核心组成部分,分为对称加密和非对称加密两种。 - 对称...
根据给定的信息,我们需要讨论有关消息摘要算法、尤其是NIST(美国国家标准与技术研究院)选定的最新消息摘要算法的知识点,即SHA3(安全哈希算法3)标准。 首先,关于NIST和消息摘要算法,美国国家标准与技术研究...
java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...
消息摘要算法在 Java Web 系统中的应用 在 Java Web 系统中,消息摘要算法是一种非常重要的安全技术,主要用于保护用户的敏感信息,如密码、用户名等。随着 Java Web 的广泛应用,系统中的信息安全性也变得越来越...
MD5消息摘要算法,全称为Message-Digest Algorithm 5,是由美国计算机科学家Ronald Rivest在1991年设计的。它是一种广泛应用于数据校验、文件完整性验证的哈希函数,尤其在IT和网络安全领域中具有重要的地位。MD5...
消息摘要算法是信息安全领域中用于验证数据完整性的关键技术,它们可以将任意长度的输入(也称为预映射或消息)转换为固定长度的输出,通常称为摘要或哈希值。这个过程是不可逆的,即无法从摘要恢复原始数据。在给定...
消息摘要算法(如SHA)是其中的一种加密手段,用于验证数据的完整性和防止篡改。本文将深入探讨SHA(Secure Hash Algorithm)在Java中的实现,并提供详细的知识点解析。 SHA全称为安全哈希算法,它是一种非对称加密...
MD消息摘要算法实现及改进.doc
将盐附加在口令上,通过消息摘要算法经过迭代获得构建密钥的基本材料,构建密钥后使用对称加密算法进行加密解密。 算法/密钥长度/默认密钥长度: 1.PBEWithMD5AndDES/56/56 2.PBEWithMD5AndTripleDES/112,168/168 ...
Java实现MD5消息摘要算法 MD5消息摘要算法是一种不可逆的消息摘要算法,它可以将任意长度的输入数据转换为固定长度的输出数据。Java语言提供了对MD5消息摘要算法的支持,可以通过使用java.security.MessageDigest类...
本文详解了Java中消息摘要算法MAC(Message Authentication Code)的实现方法,这是消息摘要算法的第三种实现方式,前两种分别是MD2、MD4、MD5以及SHA系列算法。消息摘要算法主要用于确保信息传输完整性和认证,MAC...
消息摘要算法SHA,全称为安全散列算法(Secure Hash Algorithm),是一系列加密散列函数的统称。在Java中,消息摘要算法常用于生成数据的固定大小的散列值(哈希值),这些散列值能够代表原始数据,但又不能从散列值...
消息摘要算法是信息安全领域中的一种重要技术,用于将任意长度的数据转换为固定长度的摘要值。这个摘要值具有不可逆性,即无法从摘要恢复原始数据,因此常用于验证数据的完整性和防止篡改。本篇文章主要探讨的是如何...
MAC算法之消息摘要算法HmacMD5的实现 MAC(Message Authentication Code,消息验证码)算法是一种常用的消息认证机制,它可以确保消息的完整性和真实性。在实际应用中,MAC算法通常与加密算法结合使用,以确保消息...
Java 消息摘要算法 MAC 实现与应用完整示例 Java 消息摘要算法 MAC(Message Authentication Code)是一种用于数据完整性和身份验证的算法。它可以确保数据的完整性和一致性,防止数据被篡改或伪造。 概念: * ...
消息摘要算法在IT行业中扮演着重要的角色,尤其是在数据安全、软件开发和网络通信等领域。这里的标题和描述提及了两个特定的jar包:“commons-codec-1.4.jar”和“bcprov-jdk15on-154.jar”,它们是实现消息摘要功能...
这里我们主要讨论的"摘要算法1"可能指的是一个特定的哈希(Hash)函数或消息摘要算法,但给定的信息没有提供足够的细节来指明是哪一个具体的算法。不过,我们可以对摘要算法这一概念进行深入的探讨。 摘要算法,又...
MD5算法是一种常用的消息摘要算法,但它存在一些缺陷,如短明文摘要加密不安全的问题。为解决这个问题,文章提出了基于MD5算法的加盐消息摘要方法。该方法通过增加原始明文的长度来解决短明文摘要加密不安全的问题。...