Encryption 混淆、散列和加密之间有什么区别?

Encryption 混淆、散列和加密之间有什么区别?,encryption,hash,obfuscation,Encryption,Hash,Obfuscation,混淆、散列和加密之间有什么区别 以下是我的理解: 哈希是一种单向算法;不可逆转 模糊处理类似于加密,但不需要任何“秘密”来理解(ROT13就是一个例子) 加密是可逆的,但这样做需要“秘密” 一切正常,只是模糊处理与加密并不十分相似——有时它甚至不涉及像ROT13这样简单的密码。这就是我一直以来对它的看法 哈希是从 另一种是使用集合算法。根据使用的算法,这可能是一种方式,也可能不是 混淆就是制造一些东西 符号更难阅读 替换 加密类似于散列,只是值依赖于算法提供的另一个值 这是一个高层次的解释。

混淆、散列和加密之间有什么区别

以下是我的理解:

  • 哈希是一种单向算法;不可逆转
  • 模糊处理类似于加密,但不需要任何“秘密”来理解(ROT13就是一个例子)
  • 加密是可逆的,但这样做需要“秘密”

一切正常,只是模糊处理与加密并不十分相似——有时它甚至不涉及像ROT13这样简单的密码。

这就是我一直以来对它的看法

  • 哈希是从 另一种是使用集合算法。根据使用的算法,这可能是一种方式,也可能不是

  • 混淆就是制造一些东西 符号更难阅读 替换


  • 加密类似于散列,只是值依赖于算法提供的另一个值


    • 这是一个高层次的解释。我将尝试改进它们:

      散列-在一个完美的世界里,它是一个随机预言。对于相同的输入X,您总是接收相同的输出Y,这与X没有任何关系。这在数学上是不可能的(或者至少是未经证明的可能)。我们得到的最接近的是陷门函数。H(X)=Y对于H-1(Y)=X来说是如此困难,你最好尝试用蛮力来强迫a Z,使H(Z)=Y

      模糊处理(我的观点)-任何函数f,例如f(a)=b,其中依赖于f是秘密的。F可能是一个散列函数,但“模糊处理”部分通过模糊性暗示了安全性。如果你以前从未见过ROT13,那就太模糊了


      加密-Ek(X)=Y,Dl(Y)=X,其中E是每个人都知道的。k和l是键,它们可能是相同的(在对称中,它们是相同的)。Y是密文,X是明文

      哈希是一种基于较大数据块创建半唯一密钥的技术。在给定的散列中,最终会发生“冲突”(例如,两个不同的数据段计算为相同的散列值),当发生冲突时,通常会创建更大的散列键大小

      混淆通常包括试图删除有用的线索(即有意义的变量/函数名),删除空白以使内容难以阅读,以及通常以复杂的方式进行操作以使后续工作变得困难。它不像“真正的”加密那样提供严格的安全级别


      加密可以遵循几种模式,其中一种是“秘密”方法,称为私钥加密,其中双方都有一个密钥。公钥加密使用共享单向密钥进行加密,使用私有接收方密钥进行解密。对于公钥,只有接收者需要知道秘密。

      混淆是隐藏或使某些东西更难理解

      散列接受一个输入,通过一个函数运行它,并生成一个可以作为输入引用的输出。它不一定是唯一的,一个函数可以为不同的输入生成相同的输出


      加密以独特的方式将输入转换为输出。存在一对一的相关性,因此没有潜在的数据丢失或混淆-输出始终可以转换回输入,而不会产生歧义。

      密码学中的模糊处理是在对输入数据进行哈希或加密之前对其进行编码


      这使得暴力攻击变得不太可行,因为确定正确的明文变得更加困难。

      这是一个不错的高级描述。以下是一些额外的注意事项:

      散列通常将大量数据缩减为更小的大小。例如,这有助于验证文件的内容,而不必有两个副本进行比较

      加密涉及存储一些秘密数据,而秘密数据的安全性取决于保持一个单独的“密钥”不受坏人的攻击

      模糊处理是在没有单独密钥(或使用固定密钥)的情况下隐藏某些信息。在这种情况下,对方法保密就是如何确保数据安全

      从中,您可以看到哈希算法如何对数字签名和内容验证有用,如何使用加密保护您的文件和网络连接,以及为什么将模糊处理用于数字权限管理。

      • 散列是从一个值创建另一个值的单向任务。算法应该尝试创建一个尽可能短且唯一的值

      • 模糊处理是在不改变语义的情况下使某些东西无法阅读。它涉及到值转换、删除空白等。某些形式的混淆也可能是单向的,因此不可能获得起始值

      • 加密是双向的,总有一些解密在以另一种方式工作


      所以,是的,你基本上是对的。

      混淆仅仅是通过侵入技术来迷惑某人,使某些东西更难理解。代码混淆器通常通过重命名对象来删除变量或方法名中任何有意义的内容。它与加密不同,不需要解密就可以使用

      通常,哈希和加密之间的区别在于,哈希通常只使用公式将数据转换为另一种形式,其中加密使用需要密钥的公式进行加密/解密。例如,base64编码是一种哈希算法,而md5是一种加密算法。任何人都可以解除base64编码数据的加密,但如果没有密钥,则无法解除md5加密数据的加密。

      简单回答:

      散列-在某些数据上创建检查字段(以检测数据何时被修改)。这是一个单向函数,无法从哈希中派生原始数据。这方面的典型标准是SHA-1、SHA256等

      混淆-修改数据/代码以混淆其他人(没有真正的保护)。这可能是也可能不是