有没有人知道(简单)的方式来使用PBKDF2或BCrypt作为Apache HTTPD中的密码散列。
一般的情况是,我有一个/ private的资源,我想限制给一个给定的用户组。 这些用户将具有存储在数据库中的密码并使用mod_auth_dbd进行validation。
我想摆脱使用SSHA。
我可以在Apache apr-util中看到有一个函数apr_password_validate (它可以处理所有现在被apr_password_validate散列types); 而在apr_crypto_openssl.c中有crypto_passphrase ,这是PBKDF2的一个实现。
有没有人焊接在一起? (或者我错过了Apache文档中显而易见的东西?)
所以经过进一步的审查,似乎一切都比我想象的要简单得多。
HTTPD使用系统提供的crypt函数,因此利用其模块性。
http://en.wikipedia.org/wiki/Crypt_(Unix)#Modular_crypt.283.29_Algorithms
理论上它直接支持BCrypt(虽然我没有testing它)。 我用$ 6前缀testing了SHA-512。
所以按照下面的计算来设置密码可以达到理想的结果:
salt = 'fGn9LR75'; puts 'quohjo5oor4ac3Deolei'.crypt('$6$' + salt); => "$6$fGn9LR75$juRSrMtKBa8pdZ8tbTouUvDItoF9Fp.LVk8Kqv2ZL5T.Rq/nUQNGePve1Ge/8rDf/xqUwgpY.3F1MQ0qtauf0"