编码和加密之间的区别


139

编码和加密有什么区别?


5
作为第一近似,加密使用密钥,而编码则不使用密钥。
总统詹姆斯·波尔克(James K. Polk)

如果您解码已编码的数据准备工作,但是如果在不知道secet密钥的情况下解密加密的数据,那么您就受到了黑客的欢迎。
Sujeet Agrahari,

1
编码就像将语言A转换为语言B一样,以便知道语言B的人们可以轻松获得它。像将语言A转换为语言B那样进行加密,以便只有知道语言B的特定人员才能获得它,通常您在开始翻译之前就告诉他们这种方式,也许是方法或密钥。例如将石榴当作手榴弹。
Sujeet Agrahari,

Answers:


177

编码使用公开可用的方案将数据转换为另一种格式,以便可以轻松地将其反转。

加密将数据转换为另一种格式,使得只有特定的个人才能逆转转换。

总结-

编码用于维护数据可用性,并使用公开可用的方案。

加密用于维护数据机密性,因此反向转换(密钥)的能力仅限于某些人。

SOURCE中的更多详细信息


3
您是否将“带有公共密钥以供签名的文档”视为“编码”或“加密”?:)
Jarod42 '18

@ Jarod42数字签名既不是文件的加密也不是文件的编码,因为无法从原始文件中恢复原始数据。
Thilo

1
“使用公开可用的方案”-加密也肯定会使用公开可用的方案,实际上,任何具有自身价值的加密方案始终是公开可用的(即,没有像公众眼中那样的后门)。不公开的部分是解密数据所需的机密,而不是实际的方案/算法(例如RSA,DH等)。
PragmaticProgrammer

32

编码是对数据进行转换的过程,以便可以毫无危险地通过通信通道传输数据,也可以将其存储在存储介质上而没有危险。例如,计算机硬件不操纵文本,它仅操纵字节,因此,文本编码是对文本应如何转换为字节的描述。同样,HTTP不允许安全传输所有字符,因此可能有必要使用base64编码数据(仅使用字母,数字和两个安全字符)。

在编码或解码时,重点放在具有相同算法的每个人上,并且该算法通常有据可查,分布广泛且相当容易实现。任何人最终都能解码编码的数据

另一方面,加密将转换应用于一段数据,该转换只能使用关于如何解密的特定(和秘密)知识才能逆转。重点在于使目标接收者以外的任何人都难以读取原始数据。保密的编码算法是一种加密形式,但是非常脆弱(设计任何类型的加密都需要技巧和时间,根据定义,您不能让别人为您创建这样的编码算法,否则您会必须杀死他们)。取而代之的是,最常用的加密方法使用秘密密钥:该算法是众所周知的,但是加密和解密过程要求两个操作具有相同的密钥,然后将密钥保密。只有使用相应的密钥才能解密加密的数据


它并不总是需要具有相同的密钥来进行加密和解密。diffe-hellman是否使用发件人的私钥进行编码,而不使用收件人的私钥进行解码?
大卫·曼

“ HTTP不允许安全传输所有字符。...”我认为这是一种误导。HTTP是8位干净的。您可以在HTTP消息正文中传输所需的任何字节。标头使用ASCII规范,但这与“安全”传输无关。
Hawkeye Parker

27

编码方式:

  1. 目的:编码的目的是转换数据,以便其他类型的系统可以正确(安全)使用它。

  2. 用于:维护数据可用性,即确保能够正确使用它。

  3. 数据检索机制:无密钥,只要我们知道编码中使用了哪种算法,就可以轻松地将其反转。

  4. 使用的算法:ASCII,Unicode,URL编码,Base64。

  5. 示例:二进制数据通过电子邮件发送,或在网页上查看特殊字符。

加密:

  1. 目的:加密的目的是对数据进行转换,以使其对他人保密。

  2. 用于:维护数据机密性,即确保数据不会被目标接收者以外的任何人使用。

  3. 数据检索机制:如果我们知道所使用的密钥和加密算法,则可以获得原始数据。

  4. 使用的算法:AES,河豚,RSA。

  5. 示例:向某人发送一封只有他们应该能够阅读的秘密信件,或者通过Internet安全地发送密码。

参考网址: http : //danielmiessler.com/study/encoding_vs_encryption/


9

编码是将字符序列放入特殊格式以进行传输或存储的过程

加密是将数据转换为密码的过程。加密是实现数据安全性的最有效方法。要读取加密的文件,您必须有权访问使您可以对其解密的密钥或密码。未加密的数据称为纯文本; 加密的数据称为密文


3

将编码视为在不同系统之间存储或通信数据的一种方式。例如,如果要将文本存储在硬盘上,则必须找到一种将字符转换为位的方法。或者,如果您只有闪光灯,则可能需要使用Morse编码文本。只要您知道结果的存储方式,结果始终是“可读的”。

加密意味着您想通过使用算法对数据进行加密来使数据无法读取。例如,凯撒(Caesar)通过将每个字母替换为另一个字母来做到这一点。除非您知道用于加密的秘密“密钥”,否则这里的结果是不可读的。


3

我想说这两种操作都将信息从一种形式转换为另一种形式,区别在于:

  • 编码意味着将信息从一种形式转换为另一种形式,在大多数情况下,它很容易逆转
  • 加密意味着原始信息被遮盖,并且涉及加密密钥,必须将其提供给加密/解密过程才能进行转换。

因此,如果涉及(对称或不对称)密钥(又称“秘密”),则为加密,否则为编码。


2

这些彼此之间几乎没有什么不同。当我们想以特定的计算机编码技术转换文本时使用的编码,而在加密中,我们将数据隐藏在特定的键或文本之间。


1

编码-》示例数据为16
则编码为10000表示它是二进制格式或ASCII或UNCODED等,任何系统都可以方便地读取它,并且容易理解其真实含义

加密-》示例数据为16,那么encryprion为3t57或可能取决于使用哪种算法进行加密可以被任何系统轻松读取的系统,但只有能理解其真正含义的人才能知道它的解密密钥


0

编码用于保持数据的可用性,并且可以通过采用对内容进行编码的相同算法(即,不使用任何密钥)将其反转。

加密用于维护数据机密性,并且需要使用密钥(保留的机密)才能返回纯文本。

此外,还有两个主要术语使安全领域产生混乱:哈希和混淆

散列用于通过检测对散列输出的明显更改来检测内容的所有修改,从而验证内容的完整性。

混淆用于防止人们理解某物的含义,并且经常与计算机代码一起使用以帮助防止成功的逆向工程和/或盗用产品功能。

阅读更多@ Danielmiessler文章


1
编码是理解字符集的能力。基于哪些内容读写文件。例如。UTF-8,UTF-16,UTF-32,ANSI。加密是对已经编码的数据进行转换。
阿伦(Arun)

0

加密将数据转换为不可读的格式(可能包含特殊的不可读字符)。

编码有助于将该数据转换为可读格式(字符),以便可以将其存储以供将来使用,即可能在解密期间使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.