今天水一篇小文,hash 值的。课内 ppt 看了几十遍,动手尝试还是头一回。
Hash 值介绍,作用
在学网安类课程的时候我们知道 hash 值这个加密方法。他的特点如下:
-
正向快速:给定明文和 Hash 算法,在有限时间和有限资源内能计算得到 Hash 值。
-
逆向困难:给定 Hash 值,在有限时间内很难逆推出明文。
-
输入敏感:原始输入信息发生任何变化,新的 Hash 值都应该出现很大变化。
-
冲突避免:很难找到两段内容不同的明文,使得它们的 Hash 值一致。
有以下作用:
- 用来校验文件完整性(待下载文件有一个 hash 值,下载下来的文件计算 hash 值如果相同说明下载的文件完整。其好处在于一个特别大的文件不用真的把每一个字节都校验一遍,只需要计算一遍 hash 值比较固定长度的字符串即可)。
- 校验密码(你的密码存到服务器上的时候是加密过的 hash 值,运维人员看不到密码,每次输入密码校验的时候是用输入密码计算得到的 hash 值与后台 hash 值比对,相同则正确登录。小学期 d&b 期间看有几位同学是尝试用 hash 值保存用户密码的)。
- 数字签名(发送加密数据。发送方发送数据的 hash 值和私钥加密后的数字签名,接收方用对方公钥解密数字签名后计算 hash 值校验文件)。
应用尝试
今天下载 pycharm 的时候顺带试了一下。
SHA256 是 hash 算法的其中一种,还有 MD5,SHA1,这两种相对不那么安全。
下载完成文件后,windows 计算 hash 值的方法:
sha hash 值确实一样。
顺便尝试一下 linux 的计算方法。
前几天还学到了一种检验购买的 sd 卡实际存储大小方法:写入镜像,计算 sd 内镜像 hash 值和原镜像 hash 值并比较。