当前位置:  开发笔记 > 人工智能 > 正文

混淆,散列和加密有什么区别?

如何解决《混淆,散列和加密有什么区别?》经验,为你挑选了3个好方法。

混淆,散列和加密有什么区别?

这是我的理解:

散列是一种单向算法; 无法逆转

混淆类似于加密,但不需要任何"秘密"来理解(ROT13就是一个例子)

加密是可逆的,但这样做需要"秘密"

theraccoonbe.. 30

散列是一种基于较大的数据创建半唯一键的技术.在给定的散列中,您最终会有"冲突"(例如,两个不同的数据块计算到相同的散列值),当您这样做时,通常会创建一个更大的散列键大小.

混淆通常涉及尝试删除有用的线索(即有意义的变量/函数名称),删除空格以使事情难以阅读,并且通常以复杂的方式处理事务以使跟踪困难的事情.它没有像"真正的"加密那样提供严格的安全级别.

加密可以遵循几种模型,其中一种是"秘密"方法,称为私钥加密,其中双方都有密钥.公钥加密使用共享单向密钥进行加密,使用私有收件人密钥进行解密.使用公钥,只有收件人需要拥有秘密.



1> theraccoonbe..:

散列是一种基于较大的数据创建半唯一键的技术.在给定的散列中,您最终会有"冲突"(例如,两个不同的数据块计算到相同的散列值),当您这样做时,通常会创建一个更大的散列键大小.

混淆通常涉及尝试删除有用的线索(即有意义的变量/函数名称),删除空格以使事情难以阅读,并且通常以复杂的方式处理事务以使跟踪困难的事情.它没有像"真正的"加密那样提供严格的安全级别.

加密可以遵循几种模型,其中一种是"秘密"方法,称为私钥加密,其中双方都有密钥.公钥加密使用共享单向密钥进行加密,使用私有收件人密钥进行解密.使用公钥,只有收件人需要拥有秘密.


我将它们分类为对称(共享密钥)和非对称(公共/私有).

2> Tom Ritter..:

这是一个高级别的解释.我会尝试改进它们:

哈希 - 在一个完美的世界里,它是一个随机的神谕.对于相同的输入X,您总是接收相同的输出Y,即与X相关的无关.这在数学上是不可能的(或者至少是未经证实的).我们得到的最接近的是陷门功能.H(X)= Y对于H-1(Y)= X是如此难以做到最好试图强制Z使H(Z)= Y

混淆(我的观点) - 任何函数f,使得f(a)= b,你依赖f是秘密的.F可以是散列函数,但"混淆"部分通过默默无闻来暗示安全性.如果您之前从未见过ROT13,那就是混淆

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



3> 小智..:

散列单向算法用于比较的基准的输入而不损害参考.

它通常用于登录以比较密码,如果您使用信用卡购物,也可以在您的reciepe上找到它.在那里,你会发现你的信用卡号码隐藏了一些数字,这样你可以很高的证明你的卡用于购买东西,而搜索垃圾的人将无法找到你的卡号.

一个非常天真和简单的哈希是"字符串的前3个字母".这意味着"abcdefg"的哈希将是"abc".这个函数显然不能被反转,这是散列的全部目的.但是,请注意"abcxyz"将具有完全相同的哈希值,这称为冲突.所以再次:哈希只能证明两个比较值是相同的.

另一个非常天真和简单的哈希是数字的5模数,在这里你会看到6,11,16等...都将具有相同的哈希:1.

现代哈希算法旨在使碰撞次数尽可能低,但永远不能完全避免.根据经验:散列越长,碰撞越少.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有