编码和加密的区别

Difference between encoding and encryption

编码和加密有什么区别?


编码使用公开的方案将数据转换成另一种格式,这样就可以很容易地将其反转。

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

摘要

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

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

源中的详细信息


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

在编码或解码时,重点放在所有具有相同算法的人身上,并且该算法通常具有良好的文档记录、广泛的分布和相当容易实现的特点。任何人最终都能解码编码数据。

另一方面,加密将一个转换应用到一个数据块上,该数据块只能通过特定(和机密)的解密知识来反转。重点是让任何人都很难阅读原始数据,除了预期的接收者。保密的编码算法是一种加密形式,但非常脆弱(设计任何类型的加密都需要技巧和时间,而且根据定义,你不能让别人为你创建这样的编码算法——否则你就必须杀死它们)。相反,最常用的加密方法使用密钥:该算法是众所周知的,但加密和解密过程要求两个操作具有相同的密钥,然后密钥被保密。只有使用相应的密钥才能解密加密数据。


编码:

  • 目的:编码的目的是转换数据,以便不同类型的系统能够正确(安全)地使用数据。

  • 用于:维护数据可用性,即确保数据能够被正确使用。

  • 数据检索机制:如果我们知道编码中使用的是什么算法,就没有密钥,很容易被颠倒。

  • 使用的算法:ascii、unicode、url编码、base64。

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

  • 加密:

  • 目的:加密的目的是为了对数据进行转换,使其不被他人知道。

  • 用于:维护数据机密性,即确保数据不会被预期收件人以外的任何人使用。

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

  • 使用的算法:AES、Blowfish、RSA。

  • 例如:向某人发送一封只有他们才能阅读的秘密信,或者通过互联网安全地发送密码。

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


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

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


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

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

    所以,如果它涉及(对称或非对称)密钥(又称"秘密"),那么它就是加密,否则它就是编码。


    将编码视为在不同系统之间存储或通信数据的方法。例如,如果您想在硬盘上存储文本,您必须找到一种方法将字符转换为位。或者,如果你只有一个闪光灯,你可能想用莫尔斯电码你的文字。如果您知道结果是如何存储的,那么结果总是"可读的"。

    加密意味着您希望通过使用算法对数据进行加密使其不可读。例如,凯撒用一个字母代替另一个字母。这里的结果是不可读的,除非你知道用它加密的秘密"密钥"。


    这些有点不同。当我们要在特定的计算机编码技术中转换文本时使用的编码,在加密中,我们在特定的密钥或文本之间隐藏数据。


    编码-》示例数据为16那么编码是10000表示它是二进制格式或ASCII或未编码等任何一个系统都可以轻松、轻松地理解它的真正含义。

    加密-》示例数据为16那么encryprion是3t57,或者可能是任何依赖于使用哪种算法进行加密的东西。它可以被任何系统轻松地读取,但是谁能理解它的真正含义谁拥有它的解密密钥?


    编码是为了保持数据的可用性,并且可以通过使用编码内容的相同算法来逆转,即不使用密钥。

    加密是为了维护数据机密性,需要使用密钥(保密)才能返回纯文本。

    还有两个主要术语会在安全散列和混淆的世界中带来混乱。

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

    模糊是用来防止人们理解事物的含义,通常与计算机代码一起使用,以帮助防止成功的逆向工程和/或产品功能的窃取。

    阅读更多@danielmiessler文章