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. 用 Flask 来写个轻博客 (28) — 使用 Flask-Assets 压缩 CSS/JS 提升网页加载速度
  2. 【Nginx】错误: [emerg] “proxy_pass“ cannot have URI part in location given by regular expression,...
  3. 一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)
  4. CSS画各种二维图形
  5. python相对路径下的shell_shell,python获取当前路径(脚本的当前路径) (aso项目记录)...
  6. 试题 15 枚举n-m之间的所有质数(质数)
  7. 简单工厂模式和策略模式的区别
  8. matlab中global
  9. 全网功能最强Modbus上位机软件
  10. vertica 数据库 linux,CentOS 7下安装vertica记录
  11. 直观认识Windows
  12. mac可用的vpb_有什么让你相见恨晚的 MacBook 神器?
  13. 微软sus服务器搭建,规划和部署 Exchange Server
  14. Appium: Windows系统桌面应用自动化测试(二)
  15. elment-ui的el-select选择器blur事件失效 bug解决
  16. 游戏开发经验之开源游戏盈利的十个有效途径
  17. C++ RegSetValueEx返回值始终为5
  18. codevs 2703 奶牛代理商 XII
  19. python语句分号_【判断题】Python程序中每条语句以分号结尾。 A. 正确 B. 错误
  20. shared_ptr的详解

热门文章

  1. erp采购总监个人总结_ERP沙盘模拟实验采购总监个人总结
  2. 今日早报 每日精选12条新闻简报 每天一分钟 知晓天下事 5月12日
  3. python写小猪佩奇_这个程序员用 Python 20 秒画完小猪佩奇“社会人”!
  4. 消息管理之获取未读信息数目
  5. 2018年第23周-大数据的HDFS数据流及操作例子
  6. HashMap的底层结构、原理、扩容机制
  7. 适合女生做的副业有哪些?其实有很多兼职副业都可以做
  8. 基于springboot的房产在线买房卖房租房管理系统
  9. using 与名字空间的意义
  10. 使用stack分析RAD-seq