为什么我们不总是使用最好的加密技术?



我目前正在探索Java的安全方面。当然,我查的第一件事是整个解码点。

提到的解密技术

经过一段时间的学习,我学到了一些关于以下密码学技术的知识:

  1. MD5
  2. PBKDF2WithHmacSHA1

我为什么要问这个问题?

我知道粗略地说SHA1比MD5更安全,PBKDF2WithHmacSHA1是最安全的。但是现在我不得不问自己,为什么在某些应用程序中仍然使用MD5或SHA1等加密,而在这种情况下PBKDF2WithHmacSHA1更安全?我当然知道,只有在极少数情况下(降低蛮力速度/碰撞风险(,才有机会利用最佳技术。

但尽管如此,实施时间还是有点长,作为回报,您将获得更安全的加密。

我的最后一个问题

简而言之,我的问题是为什么并非所有应用程序都始终使用最好的加密技术,即使它们不一定需要它?我的意思是唯一的缺点是实施需要更长的时间。

另外

我不认为速度损失是不使用最佳加密技术的原因。

目标是使哈希函数足够慢以阻止攻击,但仍然足够快,不会对用户造成明显的延迟。从这里

我想到了几个共鸣:

  1. 缺乏知识 - 一个人对密码学的了解不足以编写好的代码(我应该选择PBKDF2WithHmacSHA1,PBKDF2WithHmacSHA512,bcrypt,Argon2吗?
  2. 遗留系统 - 散列值无法取消散列,因此散列密码无法转换为新的加密方案
  3. 操作系统没有库/可用/支持/符合NIST标准/等

相关内容

  • 没有找到相关文章

最新更新