密码学| Hash算法 -- 简介

Posted 闲谈趣记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了密码学| Hash算法 -- 简介相关的知识,希望对你有一定的参考价值。

Hash,一般翻译为“散列”,也可以直译为“哈希”。作用是把不定长度的输入转化为固定长度的输出,输入有差异就会导致输出有差异。



Hash算法的特点

ERC20标准规范是什么?

ERC:20标准涵盖了哪些内

容?


   正向快速 :  


给定明文和Hash算法,在有限时间和有限资源内能够快速计算得到Hash值。


   逆向困难:    


给定Hash值,在有限时间内几本不肯能逆推出明文。


   输入敏感  :  


输入信息发生任何改变,输出的Hash都应该有很大的不同。


我们用sha-256 Hash算法来操作一下:

15:28:04 @~/code/testecho "123" | shasum -a 256
181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b  -
15:28:43 @~/code/testecho "122" | shasum -a 256
03e5575136ba25c6c8e6e4260e7e1ed1072a27472f41a43188f976a580f285b2  -
15:28:57 @~/code/test$


我们可以看到,当我们将123改成122时,得到的Hash值完全不同。


   冲突避免:    


几乎不可能找到不同的明文,使他们的Hash值相同。 这种情况称为Hash碰撞。



应用

ERC20标准规范是什么?

ERC20标准涵盖了哪些内

容?


在密码学中,Hash函数主要用于消息摘要和签名,换句话说主要是对消息的完整性进行校验。比如在一些开源平台,开发者发布软件之后就会发布对应软件的校验码,以方便用户对软件的完整性进行校验。比如一些网站会将你输入的密码进行Hash计算,然后再存储进数据库。



Hash函数的分类

ERC20标准规范是什么?

ERC20标准涵盖了哪些内

容?


典型的Hash函数有两类:消息摘要算法 (MD5)  和 安全散列算法(SHA)


MD是Message Digest的缩写,MD5输出的Hash值是128位的,现被证明MD5不具备"强抗碰撞性"


SHA(Secure Hash Algorithm)是一个Hash函数族。目前被分为SHA-1和SHA-2两种类型,SHA-3相关算法也已经被提出。SHA-1与MD5一样已经被破解,证明是不安全的。SHA-2系列里面包含了SHA-224、SHA-256、SHA-384 和 SHA-512等相关算法。



小结

ERC20标准规范是什么?

ERC20标准涵盖了哪些内

容?


Hash函数的种类有很多,后续我们再单独介绍目前被频繁使用的MD5与SHA-256算法。也会简单的介绍一下其他的Hash算法。


以上是关于密码学| Hash算法 -- 简介的主要内容,如果未能解决你的问题,请参考以下文章

HASH算法简介

区块链快速入门——区块链密码学与安全相关技术

密码学系列之:碰撞抵御和碰撞攻击collision attack

一文详解密码学中的Hash 算法

一文详解密码学Hash算法的安全问题(加盐+HMAC)

密码学之 Hash 算法