您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

关于加密算法你了解多少

时间:2021-07-13 14:13:59  来源:  作者:暖男在奋斗的路上

说起区块链,似乎大家都懂一点,再往细里一问,似乎又都不懂了。

比如,你问一个人:为什么要挖矿,挖的到底是啥。

怕是没几个明白人。

本文就是要给你讲明白!

前言

人们一说起区块链,就常常说防篡改防篡改,那么,这个防篡改是怎么做到的呢。

主要靠HASH。

人们所常说的挖矿,其实是在挖HASH。

挖一个长得很好看的HASH。

但,什么是HASH?

外行人是说不清的,内行人,似乎也很少能给外行人讲明白。

很多人喜欢用比喻的方式给外行人讲HASH,其实,你就是弄100个比喻(什么麻将、扑克、骰子啥的),不懂HASH的人还不懂。

他们中比较傻白甜的,甚至会想,挖矿是在挖麻将吗?

真正想弄明白HASH,就让他看看HASH长什么样子呗!!

HASH到底是个啥

HASH是一个算法,你给它一串数,它给你一串数。

你给它的叫输入,它给你的叫输出。

也就是说,将数据输入给HASH函数,HASH函数输出一串数。

HASH( 输入 )= 输出

这就好比你把一头猪输入给一个香肠机,香肠机给你输出一段香肠。

看个例子吧,我们以最常见的HASH算法MD5为例。(当然,有很多种HASH算法,MD5是其中最知名的一个。)

MD5 ("weijianfan") = c49262b1117b9fd1d6ebd74aaa016f3e

上面这个例子中,“weijianfan”是输入,后面那串数是输出。

再如:

MD5 ("weiyuerenhua") = a799c7c504a1a80f95ebe69a86c42637

注意,HASH函数有个重要的特点,不管输入多长,输出都是固定长度的。

当然,和一般的算法一样,只要输入不变,输出是不变的。

比如MD5,输入是不限制长度的,输出就是128位的二进制,也就是16个字节的十六进制。像上面第一个例子里,c4就是一个字节,代表了8位的二进制,即11000100,最后那个3e也是一个字节,也即00111110

我们把输入搞长点:

MD5 ("In Math We Trust.") = 767fa54f12bab6b71fb411f265814bb7

把汉字作为输入:

MD5 ("博鳌亚洲论坛2021年年会数字支付与数字货币分论坛4月18日晚举行。") =
36b5e89c797d22d14ccefe4ec79f56c2

再搞长点:

MD5 ("Andreas M. Antonopoulos is a noted technologist and serial entrepreneur who has become one of the most well-known and well-respected figures in bitcoin. An engaging public speaker, teacher, and writer, Andreas makes complex subjects accessible and easy to understand. Andreas advises multiple technology startups and speaks regularly at conferences and community events around the world.") = 5ac503b01e213d4794d92134096ad313

长一点的汉字:

MD5 ( "Andreas M. Antonopoulos 是⼀位著名的技术学家和连续创业企业家,⽐特币界最著名和倍受尊敬的⼈物之⼀。⾝为⼀名迷 ⼈的公共演说家、教师和作家,他善于把复杂的问题变得简单⽽易于理解。作为⼀名顾问,他则帮助初创者认知、评估并指 引减⼩安全和业务风险。") =
90f039293e0b3da5516e251b93434795

HASH还有一个特点,只要输入有一点点的变化,输出都会完全不同,就好像输入是完全不同的。

比如把上面这段文字中“一位”里的“一”字删掉,再做HASH:

MD5 ("Andreas M. Antonopoulos 是位著名的技术学家和连续创业企业家,⽐特币界最著名和倍受尊敬的⼈物之⼀。⾝为⼀名迷 ⼈的公共演说家、教师和作家,他善于把复杂的问题变得简单⽽易于理解。作为⼀名顾问,他则帮助初创者认知、评估并指 引减⼩安全和业务⻛险。") =
159c9d192e45fbd2eaa0c3f068a78508

看到了吧,输入有微小的变化,输出会完全不同。

HSAH对输入是不挑的,不管是字符串,还是文件,不管是文本、图像、视频,只要是数字的,都当作二进制输入就是了。

比如,把下面这幅图像给MD5,可以得到:

MD5 (Emily Blunt.jpg) = b818d284ef28f733c701f7bc1ee5f669

如果你的电脑上有md5工具,你就可以试试自己做HASH,比如在mac电脑里,在“终端”中输入md5 -s "xxx",或者md5 1.txt就可以对字符串或者文件进行md5。

若干G的视频文件也没问题:

MD5 (伟大的转折-01.mp4) =
9093c85d13f79609978f52c48e19aa65

图|38集革命历史剧《伟大的转折》,遵义会议会址

你哪怕是改动了这个视频中任何一帧的任何一个像素,MD5算出来的结果都截然不同。

所以,判断一个文件是不是被人改动过,算一下HASH就行,HASH只要没变,文件就没有被动过。(前提是这个HASH算法还不错!)

现在你对HASH大概有点印象了吧,反正只要是数字的输入,都能给你整出一段固定长度的输出,而且个个都不一样。



Tags:加密算法   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
说起区块链,似乎大家都懂一点,再往细里一问,似乎又都不懂了。比如,你问一个人:为什么要挖矿,挖的到底是啥。怕是没几个明白人。本文就是要给你讲明白!前言人们一说起区块链,就常常说...【详细内容】
2021-07-13  Tags: 加密算法  点击:(224)  评论:(0)  加入收藏
来源:麦叔编程作者:kevin。JS逆向是爬虫的难点,是爬虫路上的拦路虎。所谓逆向就是破解网站使用的JS加密算法,拆解相关的参数。然后就可以登堂入室了。 本文总结了JS中最常用的加...【详细内容】
2021-03-04  Tags: 加密算法  点击:(195)  评论:(0)  加入收藏
前几天我发表一片关于RSA的加密算法,很多人留言让我讲解一下ECC 椭圆加密算法。首先我在这里声明一下 椭圆加密算法不像RSA 用中学的数学知识就可以解决。本文中也是参考了网...【详细内容】
2020-12-30  Tags: 加密算法  点击:(222)  评论:(0)  加入收藏
1. 简单介绍3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力...【详细内容】
2020-09-25  Tags: 加密算法  点击:(62)  评论:(0)  加入收藏
加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密。一、不可逆加密常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和...【详细内容】
2020-08-02  Tags: 加密算法  点击:(57)  评论:(0)  加入收藏
0. 前言这一篇我们将介绍一下.net core 的加密和解密。在Web应用程序中,用户的密码会使用MD5值作为密码数据存储起来。而在其他的情况下,也会使用加密和解密的功能。常见的加...【详细内容】
2020-06-22  Tags: 加密算法  点击:(45)  评论:(0)  加入收藏
RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个能同时用于加密和数宇签名的算法,它能够抵抗到目前为止已知的所有密码攻...【详细内容】
2020-02-25  Tags: 加密算法  点击:(99)  评论:(0)  加入收藏
当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信。InfoQ的这篇文章对此有非常详细的描述。这些复杂的步骤的第一步,就...【详细内容】
2020-02-23  Tags: 加密算法  点击:(74)  评论:(0)  加入收藏
crypto-js是一个前端Javascript标准加密算法库,CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。有时候项目涉及到的敏感数据比较多,为了信息安全,我们常常需要...【详细内容】
2020-02-04  Tags: 加密算法  点击:(158)  评论:(0)  加入收藏
加密,简而言之就是借助一种或多种算法将明文信息转换成密文信息,信息的接收方通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,加密算法可以分为对称加密、非对称加密和对称加密和非对称加密的...【详细内容】
2019-12-06  Tags: 加密算法  点击:(60)  评论:(0)  加入收藏
▌简易百科推荐
前言Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 是等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。Kafka...【详细内容】
2021-12-27  Java技术那些事    Tags:时间轮   点击:(1)  评论:(0)  加入收藏
博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI在炼丹过程中,为了减少训练所需资源,MLer有时会将大型复杂的大模型“蒸馏”为较小的模型,同时还要保证与压缩前相当的结果。这就...【详细内容】
2021-12-24  量子位    Tags:蒸馏法   点击:(9)  评论:(0)  加入收藏
分稀疏重建和稠密重建两类:稀疏重建:使用RGB相机SLAMOrb-slam,Orb-slam2,orb-slam3:工程地址在: http://webdiis.unizar.es/~raulmur/orbslam/ DSO(Direct Sparse Odometry)因为...【详细内容】
2021-12-23  老师明明可以靠颜值    Tags:算法   点击:(7)  评论:(0)  加入收藏
1. 基本概念希尔排序又叫递减增量排序算法,它是在直接插入排序算法的基础上进行改进而来的,综合来说它的效率肯定是要高于直接插入排序算法的;希尔排序是一种不稳定的排序算法...【详细内容】
2021-12-22  青石野草    Tags:希尔排序   点击:(6)  评论:(0)  加入收藏
ROP是一种技巧,我们对execve函数进行拼凑来进行system /bin/sh。栈迁移的特征是溢出0x10个字符,在本次getshell中,还碰到了如何利用printf函数来进行canary的泄露。ROP+栈迁移...【详细内容】
2021-12-15  星云博创    Tags:栈迁移   点击:(19)  评论:(0)  加入收藏
一、什么是冒泡排序1.1、文字描述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地...【详细内容】
2021-12-15    晓掌柜丶韶华  Tags:排序算法   点击:(16)  评论:(0)  加入收藏
在了解golang的map之前,我们需要了解哈希这个概念。哈希表,又称散列表(Hash table),是根据键(key)而直接访问在内存储存位置的数据结构。也就是说,它通过计算出一个键值的函数,将...【详细内容】
2021-12-07  一棵梧桐木    Tags:哈希表   点击:(13)  评论:(0)  加入收藏
前面文章在谈论分布式唯一ID生成的时候,有提到雪花算法,这一次,我们详细点讲解,只讲它。SnowFlake算法据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子...【详细内容】
2021-11-17  小心程序猿QAQ    Tags:雪花算法   点击:(24)  评论:(0)  加入收藏
导读:在大数据时代,对复杂数据结构中的各数据项进行有效的排序和查找的能力非常重要,因为很多现代算法都需要用到它。在为数据恰当选择排序和查找策略时,需要根据数据的规模和类型进行判断。尽管不同策略最终得到的结果完...【详细内容】
2021-11-04  华章科技    Tags:排序算法   点击:(37)  评论:(0)  加入收藏
这是我在网上找的资源的一个总结,会先给出一个我看了觉得还行的关于算法的讲解,再配上实现的代码: Original author: Bill_Hoo Original Address: http://blog.sina.com.cn/s/bl...【详细内容】
2021-11-04  有AI野心的电工和码农    Tags: KMP算法   点击:(36)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条