美文网首页
【他山之石】大话密码学·哈希算法·章二 扬帆

【他山之石】大话密码学·哈希算法·章二 扬帆

作者: 星际大镖客 | 来源:发表于2019-12-03 21:18 被阅读0次

扬帆向何处,插羽逐征东。夷落人烟迥,王程鸟路通。
江流回涧底,山色聚闽中。君去凋残后,应怜百越空。
-- 唐 · 刘长卿《送乔判官赴福州》

  • 哈希是密码学的基础,理解哈希是理解数字签名和加密通信等技术的必要前提。

基本含义

哈希函数(或散列算法,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。
该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。 -- 维基百科

常见的哈希算法有:MD4 、MD5 、 SHA1、SHA2(SHA224 、 SHA256 、 SHA384 、SHA 512)

哈希算法 翻译 翻译 什么TM的叫hash
哈希函数要做的事情是给一个任意大小的数据生成出一个固定长度的数据,作为它的映射(一一对应关系)。

一个可靠的哈希算法要满足三点。

  • 安全,给定的参数只能计算出对应的返回值,但是根据返回值不能计算出参数,也就是单向函数。
  • 独一无二,两个不同的数据,要拥有不相同的哈希(碰撞稍后讨论)。
  • 长度固定,给定一种哈希算法,不管输入是多大的数据,输出长度都是固定的。

但是仔细想一下,如果哈希的长度是固定的,也就是取值范围是有限的,而输入数据的取值范围是无限的,所以总会找到两个不同的输入拥有相同的哈希。所以,哈希函数的安全性肯定是个相对概念。
如果出现了两个不同输入有相同输出的情况,就叫碰撞。不同的哈希算法,哈希位数越多,也就基本意味着安全级别越高,或者说它的”抗碰撞性“就越好。

再来说说哈希函数的主要作用。

  • 整性校验( Integrity Check ):哈希函数的基本作用就是给大数据算出一个摘要性的长度固定的字符串,网络下载文件一般官网会公布哈希值,基于哈希函数的特性,若文件被篡改或者缺失,那么哈希值一定会变,如果两份数据的哈希值是一样的,那么这两份数据的内容就是一样的,或者说可以认为传递过程中数据没有损坏。

哈希算法的分类

哈希算法有很多种,长度越长的算法基本认为越安全。安全度低的哈希算法被认为是普通哈希算法,主要用来做完整性校验。安全度高的被称为加密哈希算法,会被用在加密算法中。
所谓的高低都是相对概念,例如 MD5 曾经属于加密哈希,但是目前只能用来做安全校验了。而从2017年开始,SHA-1 算法生成的加密证书也会被各大浏览器拒绝了。目前最流行的加密算法是 SHA-2 ,但是跟 SHA-1 不同,SHA-2 不是一种算法,而是一系列算法的统称 。

总结

  • 哈希算法有很多种,例如 md5 ,sha256 等等,但是它们总体上可以分为两大类,一类是普通哈希,另外一类是加密哈希。
  • 所谓的加密哈希是指数学上不能被快速破解的算法来保证安全,没有绝对的安全。
  • 哈希算法都是基于数学上的单向函数。数学理论上不可由输出逆向推导出输入。

参考:

在线加密解密演示 :
https://tool.oschina.net/encrypt?type=2

相关文章

  • 【他山之石】大话密码学·哈希算法·章二 扬帆

    扬帆向何处,插羽逐征东。夷落人烟迥,王程鸟路通。江流回涧底,山色聚闽中。君去凋残后,应怜百越空。-- 唐 · 刘长...

  • 5分钟区块链|技术篇 - 哈希算法

    区块链的兴起让神秘的密码学进入大众视野,今天介绍密码学中的哈希算法。提到哈希算法,熟悉区块链的朋友首先想到的也许就...

  • 【他山之石】大话密码学·椭圆曲线密码学 章十一

    椭圆曲线密码学(ECC) 跟 RSA 一样,ECC 也属于公开密钥加密,ECC 算法也是用来生成公钥的私钥的。本节...

  • Node.js 加密算法模版代码

    ???本文是通过 Node.js 实现密码学中所涉及到的哈希算法、对称加密算法、非对称加密算法、密钥交换算法、数字...

  • 算法

    今天首先给大家介绍的是密码学中的哈希算法,哈希算法大家应该不陌生了,最突出的应用就在于比特币的挖矿了,简单回顾下挖...

  • 【他山之石】大话密码学·数字证书 章十

    什么是数字证书? 先给出一个精确的定义,究竟什么是数字证书呢?数字证书是一个由可信的第三方发出的,用来证明所有人身...

  • 极客时间数据结构与算法之美笔记21-22

    什么是哈希算法 能将任意长度的二进制数据转换为固定长度的二进制数据的算法,是哈希算法。 哈希算法的用途 密码加密 ...

  • 解析哈希算法到底是什么东东?

    如果您要去刨根问底哈希算法的前世今生,那建议您去学习密码学、计算机编程等高深知识,本文仅是对区块链中的哈希算法做...

  • Hash算法

    简介 Hash(哈希或散列)算法,是密码学中非常重要的一类算法,用于将任意长度的二进制串确定性地映射到较短的(通常...

  • 区块链公私钥的应用

    密码学在区块链的应用非常广泛,可分为3类:对称加密算法、非对称加密算法和哈希散列算法。常见的方法有: Merkle...

网友评论

      本文标题:【他山之石】大话密码学·哈希算法·章二 扬帆

      本文链接:https://www.haomeiwen.com/subject/iyyhgctx.html