哈希算法简介说明

书欣 Java教程 发布时间:2023-07-03 09:04:10 阅读数:7813 1
下文笔者讲述哈希算法的相关简介说明,如下所示

哈希算法简介

哈希算法:
    称之为"摘要算法"(Digest)
哈希算法的作用:
    将指定数据转化成固定长度、不规则的数据。
哈希算法的使用场景:
    在计算机内部进行一些数值计算
	  用于验证数据是否被修改,如:给定一个文件的MD5值,就可以验证文件是否被修改
 

哈希算法简介

哈希算法的特点1:
   输出值的数据长度不变
     输出数据的长度取决于哈希函数
      如:
	    在SHA-1的情况下,它固定为20个字节
        即使输入非常大的数据,输出的哈希值数据长度也不会改变
        同理,无论输入的数据有多小,哈希值的数据长度是相同的

哈希算法的特点2:
        相同的输入,返回结果相同

哈希算法的特点3:
       输入相似的数据
         当它们相差一个字节,输出也会有很大的不同

哈希算法的特点4:
      输入完全不同的数据,输出相同的哈希值会以低概率出现
	    这种现象是哈希值冲突(哈希碰撞) 
	 并且这种是无法避免的,我们只能尽量的减少哈希碰撞的概率
	 根据哈希碰撞概率,哈希输出长度越长,越难碰撞

哈希算法的特点5:
      哈希值不能反推原数据

常用哈希算法

MD4、MD5、SHA-0、SHA-1、SHA-2(SHA-256和SHA512)
算法输出长度(位)输出长度(字节)
MD512816
SHA-116020
RipeMD-16016020
SHA-25625632
SHA-51251264

哈希示例

@Test
public void testHash() throws NoSuchAlgorithmException{
     MessageDigest md = MessageDigest.getInstance("SHA-512");
	 md.update("java265.com".getBytes());
	 byte[] res = md.digest();

	 System.out.println(new BigInteger(1,res).toString(16));
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202307/6965.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者