在区块链中,下一个区块和上一个区块通过哈希来链接。

我建议,像类似非人名命名,而是用某个东西来命名的算法(不管中英文),最好的学习方式就是从名字本身入手,因为算法被命名的时候,设计者肯定是有某种联想的!

从字面意思入手(我是谁?)

首先,来看Hash这个单词的意思。

意思很明显,就是杂乱无章的东西,动词即把XXX弄乱。

so,到这里,我们大概就明白了,哈希值就是一堆杂乱无章的乱码

哈希值如何生成?(我从哪里来?)

哈希值,是一段数据通过哈希算法后生成的乱码。

哈希算法,就是用来把任意长度的有规则的数据弄乱成一个固定长度的数据的一种函数

哈希值在用户密码存储上的应用(我到哪里去?)

  1. 最简单的用户密码(不加密)

    用户针对自己账户创建完密码后,密码直接存入数据库,示意图如下。

    这样是最简单最方便的密码储存的模式,也是最早的密码储存方式。但是,风险也很明显,密码极其容易被盗,只要黑进了数据库,那么所有用户信息都会遗失

  2. 改良的用户密码(初级加密)

    对用户密码用哈希算法进行初级加密,加密完的密码才存入数据库,示意图如下。

    进行初级加密后,即使数据库被攻击了,黑客拿到的也只是密码的哈希值,根据哈希算法的特性,黑客是无法通过哈希值反推得到密码的,所以黑客攻破了数据库也没什么用。

    但是!

    黑客也不是吃素的,后来黑客发明了“彩虹表攻击(Rainbow Table Attack)”,使得攻击经过哈希算法加密的密码成为可能。(*特别说明:由于了解彩虹表很有必要,我专门写了一篇关于彩虹表和彩虹表攻击的文章,见上面链接

  3. 再改良的用户密码(高级加密)

    世界就是这样,有攻就有防,事物的发展就是在这种作用与反作用之间交替前进。为了应对彩虹表攻击,大神们绞尽脑汁,发明了一种“加盐的哈希算法”。

    首先,什么是盐?盐就是一组随机的字符串。把这组随机的字符串接上密码(也就是“撒盐”,嗯,确实很形象~),再用哈希算法一并进行加密。原理如下图。

    加盐算法的优势就是,因为撒了盐,所以黑客再使用彩虹表攻击,难度呈指数级增长。

5分钟快速了解区块链中的哈希值Hash(用户密码存储举例说明)?相关推荐

  1. 快速识别区块链中的骗局

    2021年的区块链市场呈现多元化发展态势,有国家层面对于区块链的支持和推动,也有国际机构和知名企业的支持,还有NFT市场.跨链等生态的爆发:这些都吸引了足够的眼球,使更多人踊跃的参与到了区块链行业. ...

  2. 区块链中的哈希是什么?

    哈希是英文Hash的音译,它是一种信息压缩的方法.利用哈希能够将很长的一段文字,压缩成很短的一段乱码,然后获得这段信息的"摘要". 下面讲的是比特币,这个词大家可能都不陌生,很多人 ...

  3. 零知识证明在区块链中的应用

    零知识证明在区块链中的应用 一.引言 二.相关理论 1. 区块链 2.零知识证明 三.区块链中零知识证明的应用 1.zk-SNARK 2.ZeroCash 四.总结 参考文献 一.引言 在国家重视和政 ...

  4. 区块链中哈希算法c语言代码,解析区块链中的核心技术哈希(Hash)算法

    原标题:解析区块链中的核心技术哈希(Hash)算法 作者:崔利民 区块链是分布式数据存储.点对点传输.共识机制.加密算法等计算机技术的新型应用模式.区块链的关键技术组成主要为:P2P网络协议.共识机制 ...

  5. 5分钟读完华为区块链白皮书关键信息:推动构建一种新型价值网络

    昨天,华为全球分析师大会(2018HAS)在深圳举行,华为云BU总裁郑叶来对外发布了<华为区块链白皮书>. 5分钟读完华为区块链白皮书关键信息:推动构建一种新型价值网络 下面是玺哥整理的& ...

  6. sdk版本过低怎么办_区块链中的“块”是什么?区块链网络拥堵怎么办?-Gemini双子新约...

    区块链中的"块"是什么? 比特币是基于区块链的,这一点大家都知道.但是这个区块链是什么呢?更准确地说,区块链的各个组成部分是什么呢? 区块链是一个数据块.每个块可以看作是分类帐中的 ...

  7. 长文慎入,如何快速开发区块链游戏

    长文慎入,如何快速开发区块链游戏 译者注: 原文: 初始发行 Enjin整合 初始整合 客户端SDK GUI 客户端SDK API Enjin的API是GraphQL Enjin推荐 使用服务器 排列 ...

  8. rsa签名算法实现_国密算法在链化未来区块链中的运用

    密码学是区块链的基础,区块链中大量采用了密码学算法,包括对称加密,非对称加密,单向散列算法,数字签名等技术. 为了实现密码学技术的自主可控,中国也定义了自己的国密标准,2020年央行颁布的<金融 ...

  9. 【三分钟讲清区块链/比特币】之二:比特币入门教程

    前言:阅读本文之前,我假设你已经了解了区块链及其相关概念.如果没有,建议先阅读一下本系列的前一篇:[三分钟讲清区块链/比特币]之一:区块链入门教程,然后再阅读本文. 比特币(bitcoin)诞生于20 ...

  10. 【三分钟讲清区块链/比特币】之一:区块链入门教程

    区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来.可是,简单易懂的入门文章却很少.区块链到底是什么,有何特别之处,很少有解释. 下面,我就来尝试,写一篇最好懂的区块链教 ...

最新文章

  1. MPB:农科院牧医所赵圣国组-基于GraftM对功能基因进行物种注释
  2. Shopee上线全球类目树,类目垂直定位,让商家引流更精准!
  3. Spring @Value批注
  4. VirtualBox一类系统只能出现一个?
  5. python arp 网关_python arp欺骗伪造网关代码详解
  6. mysql二叉树_mysql如何创建二叉树
  7. 综合微软、AMiner两大学术图谱,清华大学唐杰博士如何将Open Academic Graph亿级数据精准匹配
  8. C语言写的一个贪吃蛇小游戏(windows系统)
  9. nu.xom.IllegalNameException: 0x20 is not a legal NCName character
  10. mysql 5.1 limit_mysql5 limit使用表达式的问题
  11. 通过Mixamo生成人物动画并导入Unity实现资源可用的方法
  12. Jekyll 教程——博客功能(blog)
  13. 如何用annie在B站下载视频?
  14. (详细介绍)程序员专属接单平台,赚钱的同时提升自己的技术,并附多个快速开发的脚手架项目开箱即用
  15. 徐州智伴机器人_智伴机器人和天猫精灵功能方面有什么区别?
  16. rust申请解封_参考 - Rust的确切自动解除引用规则是什么?
  17. 基于SSM实现企业生资源管理系统-ERP系统
  18. 全世界最好听的钢琴曲
  19. win10双系统linux视频教程,Win10+Linux(CentOS) 双系统安装--踩坑实录
  20. 嵌入式软件开发工程师就业发展前景怎么样?

热门文章

  1. 使用pm2部署vue项目
  2. 一句话说明白IRQL
  3. latex关于的报错问题及表格排版问题
  4. 什么是运维高手的境界?
  5. 公众号获取access_token失败
  6. MongoDB 数据全量备份
  7. 思岚激光雷达+cartographer建图
  8. 麒麟信安总裁刘文清:携手 openEuler,共推操作系统产业新发展
  9. 实战|淘宝用户行为分析案例
  10. mysql 平方_MYsql的数学函数