编码与加密与散列与混淆相比

1.编码 的目的是转换数据,以便可以由不同类型的系统正确(和安全)地使用它,例如通过电子邮件发送二进制数据,或者在网页上查看特殊字符。目标不是保密信息,而是确保能够正确消费。

 编码使用公开可用的方案将数据转换为另一种格式以便可以轻松地将其反转。它不需要密钥,因为解码它所需的唯一东西是用于编码它的算法

2.加密的目的是转换数据以使其对其他人保密,例如向某人发送只有他们应该能够阅读的秘密信件,或者通过互联网安全地发送密码。而不是关注可用性,目标是确保除预期接收者之外的任何人都不能使用数据。

加密将数据转换为另一种格式,只有特定的个人才能逆转转换。它使用保密的密钥,与明文和算法一起使用,以便执行加密操作。因此,密文,算法和密钥都需要返回明文。

3.哈希

散列用于确保完整性,即使其变得如此,以便在某些内容发生变化时您可以知道它已被更改。从技术上讲,散列采用任意输入并生成具有以下属性的固定长度字符串:

  1. 相同的输入将始终产生相同的输出。
  2. 多个不同的输入不应产生相同的输出。
  3. 不应该从输出到输入。
  4. 对给定输入的任何修改都应导致散列的剧烈变化。

散列与身份验证结合使用,以生成有关未对给定消息进行修改的强有力证据。这是通过获取给定输入,对其进行散列,然后使用发送方的私钥对散列进行签名来实现的。

当收件人打开邮件时,他们可以使用发件人的公钥验证哈希的签名,然后自己对邮件进行哈希处理,并将其与发件人签名的哈希值进行比较。如果匹配,则是由正确的人发送的未修改的消息。

  • 编码用于维护数据可用性,并且可以通过使用编码内容的相同算法来反转,即,不使用密钥。
  • 加密用于维护数据机密性,并且需要使用密钥(保密)才能返回明文。
  • 散列用于通过对散列输出的明显改变来检测其内容的所有修改来验证内容完整性
  • 混淆用于防止人们理解某些东西的含义,并且通常与计算机代码一起使用以帮助防止成功的逆向工程和/或盗窃产品的功能。

猜你喜欢

转载自www.cnblogs.com/zhouyideboke/p/10512774.html