区块链基础之哈希函数

2019-11-27 16:47:23 浏览数 (1)

本文目录

初识hash函数

hash函数的作用hash算法的安全性 常见的Hash算法 MD5 SHA1 SHA256 哈希碰撞钱包的创建参考

初识hash函数

Hash(“原文”)=“密文”

  • 基本概念:
    • 哈希函数,也称散列函数。
    • 更像是一种思想,没有一个固定公式。
    • 只要符合散列思想的的算法都可以成为哈希函数。
  • 唯一性:
    • 世界上没有完全相同的两片叶子,每一件事物都有自己的特征。
    • Hash函数可以提取数据的特征。
    • 将任意原文生成固定长度的唯一的密文。
    • 任意原文 → hash函数处理 → 唯一的固定长度的密文。
  • 不可逆:
    • 不能通过密文推算出原文内容。

hash函数的作用

  • 隐私问题
    • 用hash函数来提取该事物的特征码,用sha256甚至以上来保证不被破解。
  • 快速对账问题
    • 分布式现金系统,数字化货币一定要解决的问题。
    • hash来解决快速对账问题,同样的内容的sha256一定是一样的。

hash算法的安全性

常见的Hash算法
MD5
代码语言:javascript复制
MD5("efonmark")=08c4c0b7fb85ec581ade87563762a08f
  • 长度
    • 16进制:32位
    • 2进制:128位
  • 可能性
    • 2128
  • 安全性
  • 可穷举,不安全
SHA1
代码语言:javascript复制
SHA1("efonmark") = 3b9c6146dd3f0a4b613e530b0bf8124b9337bc46
  • 长度
    • 16进制:40位
    • 2进制:160位
  • 可能性
    • 2160
  • 安全性
    • 不安全
    • 谷歌发现首个哈希碰撞:两个文件的SHA1值完全一样。
    • 目前只有sha1出现了哈希碰撞。
SHA256
代码语言:javascript复制
SHA256("efonmark") = e233d59a649adfde5c3360d4f7a82c611531373642be013515550f994309ca57
  • 长度
    • 16进制:64位
    • 2进制:256位
  • 可能性
    • 2256
  • 安全性
    • 目前高算力个人计算机:每秒232次hash。
    • 淘宝全网算力:每秒264次hash。
    • 全球所有ipv4地址都有一个淘宝算力:每秒296次hash。
    • 整个银河系所有星球,每个星球都有ipv4个淘宝算力:每秒2128次hash。
    • 整个宇宙所有星球,每个星球都有ipv4个淘宝算力:每秒2160次hash。
    • 整个宇宙所有星球,每个星球都有ipv4个淘宝算力,穷举完需要2.5*1021年。
哈希碰撞
  • 原文无固定长度,无边界。
  • 密文有固定长度,有边界。
  • 理论上讲两个不同原文可能产生同一密文,只是概率极低。
  • 暴力穷举可产生哈希碰撞。
  • 挖矿
  • 比特币挖矿:穷举产生小于某个值的hash值。
  • 比特币算力:

钱包的创建

  • 创建条件
  • 无需网络
  • 无需服务商
  • 甚至可以无需电脑(算盘)
  • 冷钱包:生成的私钥不存储在电脑、网络世界中。

参考

  • 百度百科

https://baike.baidu.com/item/Hash/390310

  • 黑马程序员 120天全栈区块链开发 开源教程

https://github.com/itheima1/BlockChain


一番雾语:数学密码学还是非常有意思的。


免费知识星球:一番码客-积累交流 微信公众号:一番码客 微信:Efon-fighting 网站:http://efonfighting.imwork.net

☟“阅读原文”打开新世界! 别忘了“在看”哦!☟

0 人点赞