哈希、加密、编码之间的区别
在我们的日常生活中,有很多关于数据保护和安全的讨论。我们生活在这样一个时代,说数据是新的“货币”并没有错。就像我们拥有的任何其他货币一样,我们永远不希望我们的数据隐私落入他人所有,尤其是那些怀有错误意图的人。如果你认为你的个人数据在网上是安全的,那么请相信我,我的好师傅,你就大错特错了。
嗯,老实说,大多数正在阅读这个概率的人已经意识到这个事实(如果你还没有意识到,你好!你快醒醒!!!)。你可能还听说过本文标题中写的词,即编码、加密和散列。一个常见的误解是这些词指的是同一件事,但实际上它们指的是各自的技术,彼此之间有很大的不同。因此,让我们带着我们的好奇心,试着了解它们到底是什么。
编码
所以首先,让我们把事情弄清楚,与加密和散列不同,编码不用于安全目的。它是一种将数据从一种格式转换为另一种格式的技术,以便不同的系统可以理解和使用它。编码中不使用任何“「密钥」”。相同的算法用于解码最初用于编码的数据。由于这个原因,如果攻击者拥有编码数据,他们就很容易解码数据。此类算法的示例有 「ASCII、Unicode、Base64」 等。
为什么我们需要编码?
为了理解这一点,让我们举一个 BASE64 编码技术的例子。在电子邮件出现的最初几年,数据主要是基于文本的。因此,为了通过互联网传输,文本数据被转换为二进制格式,在接收端,该二进制数据再次被转换回文本格式。但随着时间的推移,发送附件和多媒体以及基于文本的电子邮件的需求开始出现。这些附件的二进制数据在其原始形式下被破坏的可能性很高。这主要是因为原始二进制文件包含一些字符,这些字符在某些语言中被区别对待。例如,在 C/C++ 中,“Null”字符被视为文件的结尾。因此,发送包含“Null”字节的二进制数据最终将阻止文件读取完成,并导致数据损坏。为了解决这个问题,BASE64 编码技术应运而生。
Base64 编码是如何工作的?
让我们举一个将“abc”转换为 Base64 的例子。
-
将字符串中的字符转换为十进制。
a = 97,b = 98 和 c = 99。
-
将这些十进制数中的每一个转换成它们等效的 8 位二进制形式:
a = 0110 0001,b = 0110 0010 和 c = 0110 0011
即 abc = 0110 0001 0110 0010 0110 0011
-
将它们分成每组 6 位:
011000 — 010110 — 001001 — 100011
-
将每个二进制转换为等效的十进制形式:
011000 = 24、010110 = 22、001001 = 9 和 100011 = 35
-
使用 Base64 表,将这些十进制数字中的每一个转换成它们对应的 Base64 字符:
因此,24 =“Y”,23 =“X”,9 =“J”和 35 =“j”。
因此,Base64 中的“abc”=>“YXJj”。
注意:有时不可能将组合的二进制精确地分成每组 6 位。在这种情况下,最后添加 0 以使其成为 64 位组的确切数量。这个过程称为“填充”。对填充数据进行编码,如果有 6 个完全填充的位,则将其映射为“=”。
示例:
“a:aa”=> 011000 010011 101001 100001 011000 01xxxx xxxxxx xxxxxx => “YTphYQ==”
加密:
无法想象没有加密的互联网。没有它,互联网将是一个不太安全的地方。互联网上的数据使用加密技术保密和安全。加密使攻击者无法读取和解码数据,并防止数据被盗。
加密使用“加密密钥”。使用密钥,数据在发送端加密,使用相同或不同的密钥,数据在接收端解密。根据用于加密/解密信息的密钥类型,加密分为两类:
-
对称密钥加密 -
非对称密钥加密
让我们看看这两种类型的加密技术:
对称密钥:
对称密钥加密方法很简单。在将数据发送给接收方之前,发送方使用私钥对数据进行加密。这个私钥只有发送方和接收方知道。因此,一旦接收方获得加密数据,他或她就使用发送方的相同私钥对其进行解密。由于发送方和接收方使用相同的密钥,这被称为“对称密钥”加密。
使用这种技术进行加密有很多好处.
例如,该系统的简单性提供了后勤优势,因为它需要更少的计算能力。此外,仅通过增加密钥的长度就可以轻松帮助提高系统的安全级别。
但是使用这种技术的问题我们已经看到了。接收方如何知道最初用于加密数据的密钥是什么?为了让他知道密钥,发件人也必须发送密钥。
有问题吗?当然!发送方也必须将密钥传输给接收方,如果通过不安全的连接完成,则他们的密钥很可能被任何攻击者拦截。
非对称密钥:
为了解决使用对称密钥加密技术的问题,使用了「非对称密钥加密技术」。与以前的技术相比,这是一种相对较新的技术。正如你可以从名称本身猜到的那样,该技术涉及两个不同的键。
一个密钥用于加密数据,这被称为公钥,并且几乎是互联网上的每个人都知道的。另一个密钥用于解密数据,称为私钥,只有接收方知道,必须保密。因此,使用两个不同的密钥使系统更加安全,并且攻击者破解它变得困难了。
公钥和私钥是一把锁的真正钥匙。这些基本上是两个在数学上相互关联的非常大的质数。
任何被公钥加密的东西,都只能被相关的私钥解密。
不能仅仅知道公钥就猜出私钥。
一些著名的非对称密钥加密算法是:「RSA、DSS(数字签名标准)、椭圆曲线密码术等」。
散列:
散列是确保通过网络发送的信息的完整性的过程。那样的话,这意味着它确保即使更改了单个内容,你也可以知道它已更改。散列可以保护你的数据免受潜在的更改,因此你的数据不会被更改甚至一点。
哈希基本上是一个字符串,它是通过将输入字符串传递给哈希算法而从中生成的。
无论输入字符串的大小是多少,该散列字符串始终具有固定长度。散列也可以被认为是“单向加密”,即数据一旦被散列就永远不能恢复到原来的形式。
哈希算法如何工作?
❝
“每一个成功的散列算法背后,都有一个很棒的散列函数”
❞
哈希函数是哈希算法的核心。该散列函数以固定长度接收数据,因此通过将输入分成固定大小的块来将输入提供给函数。这些块称为“数据块”。如果输入数据的大小小于块的大小,则使用“填充”。
散列过程也称为“雪崩效应”。它是这样的:
消息一次处理一个块。输入提供给第一个块,然后将第一个块的输出与第二个块的输入一起提供给函数。对第三个块进行相同的处理,其中第二个块的输出与第三个块的输入一起提供给函数。最终输出是所有块的组合值。
这样,如果在消息之间的任何位置更改或操作单个位,则整个哈希值都会更改。
一些流行的哈希算法是:
-
消息摘要(MD)算法 -
安全哈希算法 (SHA) -
RACE Integrity Primitives Evaluation Message Digest (RIPEMD) -
漩涡浴缸 -
循环冗余校验 (CRC)
总结点:
-
编码是将数据从一种格式转换为另一种格式的过程。 -
加密是使用密钥将信息转换为密码以保持机密性的过程。 -
哈希是一种通过将数据转换为固定长度的字符串来确保数据完整性的技术。
618福利时间
缤纷618,优惠送大家
六重好礼
重磅出击
01 认证培训立减价
谷安40+国际国内网络安全权威资质证书
聚焦学习主题,畅享年中钜惠!
618活动均减价!最高立减1W元!
参与课程:CISSP、ISO27001 Foundation、CCSP、PMP、DPO、ISO、CISA、CDPSE、CRISC、CISM、CGEIT、CCAK、Security+、CCSK、CZTP、CDSP、CBP、ITIL4 Foundation、OSCP、OSEP、OSWE、OSED……
● 码上抢占优惠名额 ●
02 减价基础再返现
前200名学员报名,再额外享受现金返现
前1-50名,返现500元
前51-100名,返现300元
前101-200名,返现200元
03 减价基础再打折
03 减价基础再打折
2门及以上课程连报
在减价基础上
再享9折优惠!
"折"学进阶,优惠不停~
参与课程:CISSP、ISO27001 Foundation、CCSP、PMP、DPO、ISO、CISA、CDPSE、CRISC、CISM、CGEIT、CCAK、Security+、CCSK、CZTP、CDSP、CBP、ITIL4 Foundation、OSCP、OSEP、OSWE、OSED……
● 码上抢占优惠名额 ●
04 技术会员三折起
• 原价3999元/年
• 618活动仅需1380元/年
• 报名认证培训再购买会员仅需888元/年
技术会员权益:免费观看安全牛课堂站内95%的技术课程,高达450+门
05 黑金卡买一送六
企业黑金卡会员:是安全牛课堂的超级会员账户,是为企业量身打造的专属服务,省时省钱高效便捷帮助企业圆满解决员工赋能培训学习难题。
618活动,买一年送6个月!
立得18个月黑金卡会员!
• 畅销基础版:16800元/年,赠送6个月
• 热榜旗舰版:38800元/年,赠送6个月
06 老友专属福利
转发活动海报至朋友圈,不分组不删除,保留24小时
凭截图领取——50元京东卡
连续3天转发活动海报至个人公众号、安全社群、知识星球、论坛博客……等个人IP渠道
凭截图领取(二选一):
• 500元京东卡
• 一门录播课程(不含考试费)
*参与的录播课程:ITIL4 Foundation、CCSK、CBP、CDSP、CZTP、DevOps Foundation、APMG的27001
● 码上抢占优惠名额 ●
原文始发于微信公众号(Aaron与安全的那些事):哈希、加密、编码之间的区别 | 文末618福利,可以拿50京东卡!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论