哈希算法简介说明
下文笔者讲述哈希算法的相关简介说明,如下所示
哈希算法简介
哈希算法: 称之为"摘要算法"(Digest) 哈希算法的作用: 将指定数据转化成固定长度、不规则的数据。 哈希算法的使用场景: 在计算机内部进行一些数值计算 用于验证数据是否被修改,如:给定一个文件的MD5值,就可以验证文件是否被修改
哈希算法简介
哈希算法的特点1: 输出值的数据长度不变 输出数据的长度取决于哈希函数 如: 在SHA-1的情况下,它固定为20个字节 即使输入非常大的数据,输出的哈希值数据长度也不会改变 同理,无论输入的数据有多小,哈希值的数据长度是相同的 哈希算法的特点2: 相同的输入,返回结果相同 哈希算法的特点3: 输入相似的数据 当它们相差一个字节,输出也会有很大的不同 哈希算法的特点4: 输入完全不同的数据,输出相同的哈希值会以低概率出现 这种现象是哈希值冲突(哈希碰撞) 并且这种是无法避免的,我们只能尽量的减少哈希碰撞的概率 根据哈希碰撞概率,哈希输出长度越长,越难碰撞 哈希算法的特点5: 哈希值不能反推原数据
常用哈希算法
MD4、MD5、SHA-0、SHA-1、SHA-2(SHA-256和SHA512)
算法 | 输出长度(位) | 输出长度(字节) |
MD5 | 128 | 16 |
SHA-1 | 160 | 20 |
RipeMD-160 | 160 | 20 |
SHA-256 | 256 | 32 |
SHA-512 | 512 | 64 |
哈希示例
@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)); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。