Hash

Hash,俗称哈希,也叫散列,是一种将任意长度的消息(数据)压缩到某一固定长度的消息摘要(消息)的算法
Hash算法具有几个重要的特性
1. 不可逆性(从Hash值反推出原消息是不可能的)
2. 抗冲突型(指定消息M1,不存在另一个消息M2,使得Hash(M1)=Hash(M2))
3. 分布均匀性(Hash算法的结果是均匀分布的)
常见的Hash算法
MD5

128bit的报文摘要(密文)

SHA-1

160bit的报文摘要(密文)(40位*4bit)

SHA-1主要有两种用途,一个是加密,一个是数据完整性校验

最新资料显示,理论上对其进行哈希碰撞的攻击可以在2^51(2的51次方=2251799813685248)左右的次数内实现
由于SHA-1不是足够的安全,现在美国的很多政府部门都开始不采用SHA-1而采用SHA-2(目前还没有发现其hash碰撞的存在);

SHA-2

256/224/512/384等多种长度的报文摘要

相关名词解释

SHA(secure hash algorithm)
又叫:hash values / hash codes / hash sums / checksums / simply hashes
加密哈希函数(cryptographic hash function)
A hash function is any algorithm or subroutine that maps large data sets of variable length, called keys, to smaller data sets of a fixed length;
哈希碰撞(hash collision)
不同的两块数据有相同的hash值
雪崩效应(Avalanche effect)
在加密中,源数据一点儿的差异将会得到完全不同的加密后的密码,这种现象叫做“雪崩效应”

参考:git中保证文件完整性的SHA-1值(commit ID)

白话文说哈希Hash是啥?相关推荐

  1. Redis学习---(8)Redis 哈希(Hash)

    Redis 哈希(Hash) Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 键值 ...

  2. perl 哈希(hash) 学习笔记

    perl 哈希(hash)学习笔记(一) 1.什么是哈希 哈希是perl的一种数据类型,比较类似数组,用于存放数据,包括2部分关键字keys和值value.不同于数组,哈希访问元素的是按照名字访问标量 ...

  3. 【Redis】Redis 哈希 Hash 键值对集合操作 ( 哈希 Hash 键值对集合简介 | 查询操作 | 增加操作 | 修改操作 )

    文章目录 一.哈希 Hash 键值对集合 二.查询操作 1.Redis 中查询 Hash 键值对数据 2.查询 Hash 键是否存在 3.查询 Hash 中所有的键 Field 4.查询 Hash 中 ...

  4. Redis—列表(List)、集合(Set)、哈希(Hash)、有序集合 Zset

    Redis-列表List.集合Set.哈希Hash.有序集合 Zset 列表List 单键多值 常用命令 数据结构 Redis 集合(Set) 常用命令 数据结构 Redis 哈希(Hash) 常用命 ...

  5. 区块链 - 哈希(Hash)

    章节 区块链 – 介绍 区块链 – 发展历史 区块链 – 比特币 区块链 – 应用发展阶段 区块链 – 非对称加密 区块链 – 哈希(Hash) 区块链 – 挖矿 区块链 – 链接区块 区块链 – 工 ...

  6. 哈希hash 各种用法最全详解

    哈希hash 什么是哈希 哈希表是一种散列表,可支持插入元素和查询元素的操作. 当元素的取值范围特别大时,布尔数组的下标无法支持,这时可以用到哈希表. 操作 对于一个哈希表,需要取一个固定的模数ppp ...

  7. Redis命令——哈希(Hash)

    Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿). 实例 127 ...

  8. Redis-04Redis数据结构--哈希hash

    文章目录 哈希概述 客户端操作hash Redis hash 结构命令 Spring操作reids的hash Step1 修改defaultSerializer Step2 操作hash 注意 代码 ...

  9. Redis 哈希(Hash)

    为什么80%的码农都做不了架构师?>>>    Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 ha ...

最新文章

  1. 相对最完整的软件测试工具手册
  2. 【基于深度学习的脑电图识别】数据集篇:脑电信号自动判读的大数据
  3. 从网页中读取数据 python_数据分析硬核技能:用 Python 爬取网页
  4. bitmap设置图片尺寸缩小,避免内存溢出/OutOfMemoryError的优化方法
  5. Flex 获取时间戳、随机数
  6. python split函数 空格_Python随笔29:Python基础编程练习题23~24
  7. 报表下拉框多选查询及一般在sql中添加查询条件
  8. Linux之ls命令
  9. 【学习 Opencv】—— 访问摄像机和视频
  10. SQL的简单增、删、改
  11. jqueryui时间插件_满足您所有日历要求的jQueryUI Datepicker插件
  12. 【Python学习日记】迭代器
  13. exe4j打包后 提示 couldn't load main class
  14. 关于.NET、ASP.NET和ASP
  15. 基于BP神经网络的轨迹跟踪matlab程序
  16. 如鹏网.Net基础2 第六章:MYSQL
  17. 山东省第五届ACM大赛--Problem E: Full Binary Tree
  18. python文本字词分割及词库云
  19. P2P技术软件Murder分发大文件
  20. linux 实验感悟_linux实训心得_linux实习心得体会范文

热门文章

  1. 实践分享:基于DevOps流程的容器安全看板
  2. 【若泽大数据 元旦大礼包】
  3. 计算100个1+100个2+100个3+...+100个100
  4. sk_buff数据结构详解
  5. java读取PDF页数
  6. 【C++学习笔记】CAD中环的偏移学习
  7. iOS 夜间模式的实现
  8. 【论文阅读】了解最新科研动向、最新论文的获取
  9. 【C51单片机学习笔记----DS18B20温度传感器LCD1602液晶屏直流电机调速与呼吸灯AD模数转换红外外部中断】
  10. Java中的得墨meter耳定律–最少知识原理–实际示例