AIX7.1上的crypt C API问题

AIX7.1上的crypt C API问题,c,aix,password-encryption,C,Aix,Password Encryption,我正在AIX7.1.0.0上编写一个密码重置实用程序,需要支持SMD5、SSHA256、SSHA512和BLOWFISH密码哈希算法。我已经成功地实现了SMD5、SSHA256和SSHA512的代码。但是,对于BLOWFISH算法,“crypt”API仍然返回正常的DES哈希,而不是BLOWFISH哈希。我在salt value-{sblowfish}{sblowfish}08${sblowfish}{sblowfish}08$中尝试了不同的前缀。然而,我还是没有得到河豚肉。例如,salt值中的

我正在AIX7.1.0.0上编写一个密码重置实用程序,需要支持SMD5、SSHA256、SSHA512和BLOWFISH密码哈希算法。我已经成功地实现了SMD5、SSHA256和SSHA512的代码。但是,对于BLOWFISH算法,“crypt”API仍然返回正常的DES哈希,而不是BLOWFISH哈希。我在salt value-{sblowfish}{sblowfish}08${sblowfish}{sblowfish}08$中尝试了不同的前缀。然而,我还是没有得到河豚肉。例如,salt值中的AIX5.3{sblowfish}前缀起作用,我得到了所需的哈希。但是,对于AIX7.1,它不起作用

The format for the salt value I am using is as follows -
MD5 - {smd5}<randomly generated 8 characters>$
SHA256 - {ssha256}06$<randomly generated 8 characters>$
SHA512 - {ssha512}06$<randomly generated 8 characters>$
BLOWFISH - {sblowfish}08$<randomly generated 22 characters>$
对于MD5、SHA256和SHA512,我得到了符合相应算法的密码哈希。 然而,对于河豚盐,“crypt”API拒绝该盐,而是返回正常的DES散列,尽管系统中有河豚


有人能帮忙吗?提前感谢。

我不确定crypt工具是否与调用该工具的PHP实现具有相同的要求,但salt必须是给定的字母表:./0123456789abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz。有效的salt参数看起来像$2y$10$nOUIs5kJ7naTuTFkBy1veu,包含算法、成本因子和salt。是的,它也是同样适用于C crypt API的salt字符集。我也提供了同样的密码。你能直接试用这个叫cryptmypassword,$2y$10$nOUIs5kJ7naTuTFkBy1veu的密码吗?它是否给出了相同的错误?是的,我尝试了您提供的salt。但是cryptapi仍然返回正常的DES散列。我认为'2y'前缀代表SUSE。那么似乎根本不支持它。如果2a也支持BCrypt,你可以试试,否则我就没主意了。
    crypt(password, salt);