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

标签 encryption hash obfuscation

混淆、哈希和加密之间有什么区别?

这是我的理解:

  • 哈希是一种单向算法;无法逆转
  • 混淆与加密类似,但不需要任何“ secret ”即可理解(ROT13 就是一个例子)
  • 加密是可逆的,但需要“ secret ”才能实现

最佳答案

散列是一种基于较大数据 block 创建半唯一 key 的技术。在给定的哈希中,您最终会发生“冲突”(例如,两个不同的数据计算出相同的哈希值),并且当发生这种情况时,您通常会创建更大的哈希 key 大小。

混淆通常涉及尝试删除有用的线索(即有意义的变量/函数名称),删除空格以使内容难以阅读,并且通常以令人费解的方式做事以使跟踪正在发生的事情变得困难。它不像“真正的”加密那样提供严格的安全级别。

加密可以遵循多种模型,其中一种是“ secret ”方法,称为私钥加密,其中双方都有一个 secret key 。公钥加密使用共享单向 key 进行加密,并使用私有(private)接收者 key 进行解密。使用公钥,只有接收者需要知道 secret 。

关于encryption - 混淆、散列和加密之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/184328/

相关文章:

php - 使用加密、代理 key 等混淆 GET id 变量

php - 用PHP轻松加解密

javascript - 这个 JavaScript 函数如何缓存它的结果?

encryption - "key container"到底是什么?

python - python中等效的C/C++ losose算法是什么

java - 移植Java : C++ --> Class types

.net - 有使用 CryptoObfuscator 或 CryptoLicensing 的经验吗?

java - 在没有用户干预或 Intent 的情况下发送电子邮件

encryption - key 散列和非 key 散列之间的区别?

encryption - 使用 RSA 签署许可文件