【问题标题】:Understanding Liferay Password Encryption了解 Liferay 密码加密
【发布时间】:2016-12-18 07:20:26
【问题描述】:

关于liferay中的密码加密我发现liferay正在使用 PBKDF2WithHmacSHA1/160/128000 算法默认使用 128,000 轮生成 160 位哈希。

我可以通过在我的 portal-ext.properties 文件中应用以下类型来使用它们

#passwords.encryption.algorithm=BCRYPT/10
#passwords.encryption.algorithm=MD2
#passwords.encryption.algorithm=MD5
#passwords.encryption.algorithm=NONE
#passwords.encryption.algorithm=PBKDF2WithHmacSHA1/160/128000
#passwords.encryption.algorithm=SHA
#passwords.encryption.algorithm=SHA-256
#passwords.encryption.algorithm=SHA-384
#passwords.encryption.algorithm=SSHA
#passwords.encryption.algorithm=UFC-CRYPT

默认类型为“PBKDF2WithHmacSHA1/160/128000”,我发现生成的每个密码都以前缀“AAAAoAAB9A”开头 喜欢:“AAAAoAAB9ACpjEM1K54bHX0UMY+3AgeAX3n50ZGERRK6MpxC”

我需要知道为什么在使用上述算法时每个密码都以这个前缀开头。

通过使用另一种算法“BCRYPT/10”,我发现我的密码以“$2a$10”开头,例如:“$2a$10$Xyx.o1kv1mIr8rtpr9sxwOP6AC9I/u7tAIlyfrzp8Vlqcek/CGdQ”

我如何计算出“$2a$10”中的“10”密码正在用 10 轮的盐进行哈希处理。这是正确的还是我弄错了?

【问题讨论】:

  • bcrypt 不使用线性轮数/迭代数,而是使用对数成本因子。此外,liferay 是开源的,因此您可以简单地查看源代码。
  • 你是对的; bcrypt(以及基本上所有的 KDF)在运行之前需要知道参数,以便它们知道何时“停止”并进行比较。如果该值在您的系统中是恒定的,就像 pbkdf2 例程一样,您可以删除该信息并稍后将其修补回来,但何必呢?
  • @efxeekay 您在一篇文章中提出了多个问题。请将您的第二个问题提取到新帖子中 - 它可以帮助人们一次专注于一个问题。
  • @ArtjomB 调查 liferay 代码有帮助

标签: encryption encoding passwords liferay password-hash


【解决方案1】:

Liferay默认使用PBKDF2WithHmacSHA1/160/128000,加密后的密码是“密钥大小、轮数、salt和密钥字节”的字节组合在字节缓冲区中按顺序放置,然后在组合上进行 Base64 编码。

所以在“AAAAoAAB9ACpjEM1K54bHX0UMY+3AgeAX3n50ZGERRK6MpxC”中有前缀“AAAAoAAB9A”的原因是因为这是密钥大小和轮数(即160/128000)字节缓冲区的组合,它被作为一个整体编码到Base64。改变密钥大小和轮数,你会想出一些不同的前缀。

【讨论】:

    【解决方案2】:

    让我们举个例子:“AAAAoAAB9ACpjEM1K54bHX0UMY+3AgeAX3n50ZGERRK6MpxC”

    将其从base64编码为十六进制:“000000a0 0001f400 a98c4335 2b9e1b1d 7d14318f b7020780 5f79f9d1 91844512 ba329c42”

    将 000000a0 从十六进制编码为十进制,得到 160 和密钥大小一样。

    将 0001f400 从十六进制编码为十进制,你会像迭代一样得到 128000。

    a98c4335 2b9e1b1d 是你的盐。

    7d14318f b7020780 5f79f9d1 91844512 ba329c42 是散列密码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-03
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多