我有一个带有集中用户数据库的系统,其中存储了不同应用程序的用户名和密码。该数据库是在 PostgreSQL 中创建的。FreeRDAIUS 通过使用 PostgreSQL 作为后端系统的 OpenLDAP 访问用户和密码。密码应该以哈希格式存储。我已经使用存储在数据库中的 SHA1 密码测试了 FreeRADIUS,并且用户已成功通过身份验证。我存储了带有 {SHA} 的摘要,它运行良好。但是,此散列需要使用 base64 格式,并以“=”作为填充字符。我使用 ldap 实用程序 slappasswd 生成了 base64 哈希摘要。
因为实际上,我应该使用 C 函数将用户插入数据库,而可用的加密库(如 OpenSSL)仅提供十六进制哈希函数,我认为最好的方法是知道如何告诉 FreeRDAIUS 存储在数据库不是 base64 而是 HEX。
有谁知道我该怎么做?似乎如果我只是将 {SHA} 放在散列值之前,它只适用于带有 FreeRADIUS 的 base64。我还想知道 FreeRADIUS 是否支持其他哈希算法,例如 SHA256。
操作系统:Ubuntu 12.04 LTS PostgreSQL:9.1 FreeRADIUS:2.1.10