1 / 14
文档名称:

Java 加密解密之消息摘要算法(MD5 SHA MAC).docx

格式:docx   页数:14页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Java 加密解密之消息摘要算法(MD5 SHA MAC).docx

上传人:cdsqbyl 2015/6/24 文件大小:0 KB

下载得到文件列表

Java 加密解密之消息摘要算法(MD5 SHA MAC).docx

相关文档

文档介绍

文档介绍:Java 加密解密之消息摘要算法(MD5 SHA MAC) 
 本文转自网络
消息摘要
消息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。消息摘要采用单向Hash 函数将需加密 的明文"摘要"成一串128bit的密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致 。这样这串摘要便可成为验证明文是否是"真身"的"指纹"了。 
 
HASH函数的抗冲突性使得如果一段明文稍有变化,哪怕只更改该段落的一个字母,通过哈希算法作用后都将产生不同的值。而HASH算法的单向性使得要找到到哈希值相同的两个不 同的输入消息,在计算上是不可能的。所以数据的哈希值,即消息摘要,可以检验数据的完整性。哈希函数的这种对不同的输入能够生成不同的值的特性使得无法找到两个具有相同哈希值的输入。因此,如果两个文档经哈希转换后成为相同的值,就可以肯定它们是同一文档。 所以,当希望有效地比较两个数据块时,就可以比较它们的哈希值。例如,可以通过比较邮件发送前和发送后的哈希值来验证该邮件在传递时是否修改。 
 
消息摘要算法
消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在 密钥的管理与分发问题,适合于分布式网络相同上使用。由于其加密计算的工作量相当可观,所以以前的这种算法通常只用于数据量有限的情况下的加密,例如计算机的口令就是 用不可逆加密算法加密的。近年来,随着计算机相同性能的飞速改善,加密速度不再成为限制这种加密技术发展的桎梏,因而消息摘要算法应用的领域不断增加。
 
消息摘要算法的特点:
①无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。
②消息摘要看起来是“随机的”。这些比特看上去是胡乱的杂凑在一起的。
③一般地,只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出。
④消息摘要函数是无陷门的单向函数,即只能进行正向的信息摘要,而无法从摘要中恢复出任何的消息,甚至根本就找不到任何与原信息相关的信息。
⑤好的摘要算法,无法找到两条消息,是它们的摘要相同。
 
 
 
现有的消息摘要算法
消息摘要算法包含MD、SHA和MAC三大系列,常用于验证数据的完整性,是数据签名算法的核心算法。 
MAC与MD和SHA不同,MAC是含有密钥的散列函数算法,我们也常把MAC称为HMAC。 
 
JDK对消息摘要算法的支持
JDK6支持MD2/MD5/SHA/SHA256/SHA384/SHA512/HmacMD5/HmacSHA1/ HmacSHA256/HmacSHA384/HmacSHA512
 
使用到   见:   java byte数组与十六进制字符串互转
 
MD和SHA系列的java实现:

Java代码  
import ;  
import ;  
  
/** 
 * reference mons <a 
 * href="http://commons./codec/">http://commons./codec/</a> 
 *  
 * support MD2/MD5/SHA/SHA256/SHA384/SHA512 
 * ***@author Aub 
 *  
 */  
public class DigestUtils {  
  
    /** 
     * 根据给定摘要算法创建一个消息摘要实例 
     *  
     * ***@param algorithm 
     *            摘要算法名 
     * ***@return 消息摘要实例 
     * ***@see MessageDigest#getInstance(String) 
     * ***@throws RuntimeException 
     *             当 {***@link } 

最近更新

2023年高考数学微专题练习专练52双曲线含解析.. 7页

《滴定分析概论》习题(一) 11页

神经干动作电位及其速度测定 31页

内蒙古自治区工业和信息化厅关于印发《内蒙古.. 5页

北师大版六年级数学上册第七单元《百分数的应.. 5页

上环境污染性疾病浦 59页

地形碎部测量要点讲解 18页

宁夏回族自治区交通运输厅关于进一步规范宁夏.. 7页

内科护理学人卫第6版绪论ppt 23页

广东省人民政府办公厅关于进一步加强高标准农.. 4页

悬挑式脚手架施工方案 7页

新产品导入流程研究及优化----以W公司为例 7页

最新鲁教版九年级化学单元测试题全册及答案 34页

沪粤版八年级物理(上)月考试卷及答案(2020版).. 5页

慢性肺源性心脏病ppt护理查房 28页

甘肃省人民政府关于大力推进保险业改革发展的.. 5页

语文语言运用之语句衔接 17页

道路升级改造工程投标施工组织设计 47页

重庆市规划和自然资源局关于印发《重庆市测绘.. 15页

高中语文课本写作素材梳理与运用 35页

骨干教师培训计划的学校管理与发展策略 26页

骨干教师培养计划的地方特色与适应性研究 25页

骨干教师培养计划中的学习评价与评估培养 25页

甲型h1n1流感护理查房ppt 24页

面向实践的临床医学培训 32页

小区物业管理业主档案管理制度 3页

智能化矿物品级提升 34页

雨灾雪灾应急预案培训加强基层社区应急管理 20页

多层流延膜机安全操作规程 3页

信贷总额与GDP之间存在的关系 1页