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

时间:2018-09-07 11:59:10

标签: database security encryption

我目前正在探索Java的安全方面。当然,我首先要看的一件事就是整个解码点。

提及解密技术

经过一段时间的学习,我了解了以下加密技术的一些知识:

  1. MD5
  2. SHA
  3. PBKDF2WithHmacSHA1

我为什么要问这个问题?

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

尽管如此,实现时间还是要长一些,反过来,您可以获得更安全的加密。

我的最后一个问题

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

此外

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

  

目标是使散列函数足够慢以阻止攻击,但仍要足够快而不会对用户造成明显的延迟。来自here

1 个答案:

答案 0 :(得分:2)

我想到了几个共鸣:

  1. 知识不足-人们对密码学还不够了解,无法编写好的代码(我应该选择PBKDF2WithHmacSHA1,PBKDF2WithHmacSHA512,bcryptArgon2吗?)
  2. 旧版系统-哈希值不能被哈希,因此哈希密码不能转换为新的密码方案
  3. 操作系统未提供/可使用/受支持/符合NIST的库等。