【问题标题】:Aix: How to generate valid sha1/sha256/sha512 password hash on AIX /etc/security/passwd?Aix:如何在 AIX /etc/security/passwd 上生成有效的 sha1/sha256/sha512 密码哈希?
【发布时间】:2016-11-03 15:34:47
【问题描述】:

AIX 和其他 Unix 一样,只存储用户密码的加盐哈希。 在过去,它使用 DES crypt,然后是一个(略有不同的)MD5 Crypt,与 Linux 上的相同。

随着 AIX 的更新版本和 /etc/security/passwd 的使用,您可以使用新的 SHA1/SHA256/SHA512 哈希。它们看起来像这样(例如密码“secret”的哈希字符串结果):

- salted sha1   : {ssha1}12$tyiOfoE4WXucUfh/$1olYn48enIIKGOOs0ve/GE.k.sF
- salted ssha256: {ssha256}12$tyiOfoE4WXucUfh/$YDkcqbY5oKk4lwQ4pVKPy8o4MqcfVpp1ZxxvSfP0.wS
- salted ssha512: {ssha512}10$tyiOfoE4WXucUfh/$qaLbOhKx3fwIu93Hkh4Z89Vr.otLYEhRGN3b3SAZFD3mtxhqWZmY2iJKf0KB/5fuwlERv14pIN9h4XRAZtWH..

配置文件/etc/security/pwdalg.cfg解释{algo_name}后面的数字是“num_cost”,我们可以用2^num_cost得到哈希函数中使用的迭代次数。

我需要从位于 /etc/security/passwd 中的 Scala 应用程序生成有效哈希。

我尝试调整 commons-codec Sha2Crypt (https://commons.apache.org/proper/commons-codec/apidocs/src-html/org/apache/commons/codec/digest/Sha2Crypt.html) 女巫实现官方 Sha-Crypt 算法 (https://www.akkadia.org/drepper/SHA-crypt.txt),但给出了错误的哈希值。

有人知道该怎么做吗?

【问题讨论】:

    标签: algorithm hash passwords aix crypt


    【解决方案1】:

    简短的回答是,appart for md5,它是标准的 unix 实现,仅在前缀({smd5} 代替“$1”)不同,其他实现与https://www.akkadia.org/drepper/SHA-crypt.txt 中描述的标准 Unix crypt 显着不同. 事实上,他们只保留:

    • 哈希的字节数(以及字符数):ssha1 为 20,ssha256 为 32,ssh512 为 64
    • base64 编码表(不是标准的,但以“./012”等开头

    改变的是:

    • 他们使用 PBKDF2 HMAC-(sha1, sha256, sha512) 代替 Sha-Crypt,
    • 他们使用不同的填充表
    • 迭代次数,在 Unix 加密词汇表中命名为“rounds”,不是在哈希字符串开头(算法名称之后)找到的数字 N。迭代次数其实是2^N,N在/etc/security/pwdalg.cfg中被称为“代价”

    可以在 Rudder 的 AixPasswordHashAlgo.scala 中找到有效的 Scala 实现:https://github.com/Normation/rudder/blob/master/webapp/sources/rudder/rudder-core/src/main/scala/com/normation/cfclerk/domain/AixPasswordHashAlgo.scala

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 2016-07-09
      • 2012-02-09
      • 2013-03-15
      • 2015-08-17
      • 2014-11-29
      相关资源
      最近更新 更多