openssl——有盐限制吗?

openssl——有盐限制吗?

正在阅读另一篇文章,使用盐的例子是:

openssl passwd -crypt -salt foo bar
foXrpAKGo3142

但如果我把盐换成

openssl passwd -crypt -salt foo111 bar, I still get
foXrpAKGo3142

盐长度有限制吗?好像是2个字符。

谢谢!

答案1

通过crypt算法,盐限制是12位。其他算法支持更长的盐;与openssl passwd,您应该使用-5-6

也可以看看如何找到用于哈希密码的哈希算法?

答案2

-crypt的算法是openssl passwd遗留算法,不应再使用。它可以以适中的成本进行暴力破解。这是传统的基于 DES 的crypt()密码哈希算法这是在第七版 Unix1979 年。它将盐限制为 2 个可打印 ASCII 字符,将密码限制为 8 个可打印 ASCII 字符。除了用于历史目的或在极其过时(且不安全)的系统上之外,它没有任何实际价值。

在代码示例中使用它的任何人要么不知道他们在说什么,要么不关心提供好的建议。如果您openssl passwd -crypt在示例中看到除非常古老的遗留用法之外的任何内容,请逃跑。

对于密码散列,请按优先顺序使用:

  • 氩气2,自 2015 年起的官方标准。
  • 加密,这很难记忆。
  • 密码,PBKDF2或者类似的 Unix 算法SHA加密,它们是 CPU 困难的,但不是内存困难的。

OpenSSL 仅实现 Unix 算法(openssl passwd -5openssl passwd -6-5在 32 位机器和-664 位机器上稍快一些)。

这些都没有使用少得离谱的盐(按照今天的标准)。

也可以看看2018 年,存储密码的推荐哈希是什么:bcrypt、scrypt、Argon2?如何安全地散列密码?

相关内容