[Day14]What is Hash? part.2


今天是第二天介绍hash!
总结一下hash,其实有两个很重要的重点:

  1. 不能让任何人从hash导出原本的值,hash函数应该要是单向的,就像你不能用果汁做出水果的概念。
  2. 要确保每个hash值只能对应到一个原始值,不能因为很像就有一样的hash产生,就像test 跟Test的hash值不能一样。(要让机率降到最低)
    另外在hash的计算中,有分成简单hash(simple hash)以及tree,当我们今天要进行hash的项目数量是固定的,则使用简单hash。如果今天要进行hash的项目数量不固定时,则用树状结构来进行计算。
    现在最常见的哈希大小是 256 位,常用函数是 SHA-3、SHA-256 和 Keccak。
  • MD 5:它会产生一个 128 位的hash。
  • SHA 1:生成 160 位hash。
  • SHA 256:生成 256 位hash。目前正在被比特币使用。
  • Keccak-256:生成 256 位hash,目前被以太坊使用。

区块分成head&body

区块头(head)包含...

  • 版本号
  • 时间戳(timestamp)
  • Difficulty target:代表这个区块的proof of work 的困难值。(难度系数越大,目标值越小)
  • 前一个区块的hash。
  • Nonce:表示proof of work 的执行次数。
  • Merkle root hash:纪录目前区块里经由merkle tree 演算法算出来的merkle tree root 的hash值。

区块体(body)包含...

实际数据


此外还有找到一个可以demo hash的网页,大家如果好奇可以去玩看看!
https://andersbrownworth.com/blockchain/hash


参考资料:
https://blockgeeks.com/guides/what-is-hashing/
https://blockgeeks.com/guides/what-is-hashing/


那今天的介绍就到这边拉~
真的是没有很专业的介绍,比较像是跟大家分享我学到甚麽,我还有很多要学习的地方:(
如果喜欢的话明天记得继续回来看下一篇!影片记得按赞订阅开小铃铛谢谢大家!
/images/emoticon/emoticon29.gif


<<:  将MongoDB加进discord-bot

>>:  【Day 13】Dictionary 介绍

用 Python 畅玩 Line bot - 26:爬虫(一)

这次要尝试的是将爬虫与 line bot做结合,那你可以使用 line bot 就能够查询到本周上映...

记忆卡随身碟硬碟档案丢失的解决办法

这是一篇有用的工具文。 日常生活中,我们不可避免会碰上误删,误格式化硬碟/外接硬碟/记忆卡亦或是随身...

LeetCode解题 Day10

446. Arithmetic Slices II - Subsequence https://le...

AI ninja project [day 25] QLattice -- 基础分类

你听过的有AI框架有scikit-learn(机器学习)、tensorflow(深度学习)、pyto...

第8-1章:管理本地端主机之使用者与群组(三)

前言 在上一章节中,笔者讲解了如和切换使用者以及取得最高的root使用者权限,接下来要讲解的是本地端...