1

我们有一个 PHP 应用程序,它只使用 MD5 函数(没有盐)存储密码。
我们将 OpenSSH 设置为使用pam-mysql对来自同一数据库的用户进行身份验证。

我们想改用散列密码,我们正在考虑: 1. 自己做,(类似md5($salt."$".$password)or hash("sha256", $salt."$".$password)),或 2. 使用 php 的 crypt 函数(如果可用,它使用 OS crypt(3))。
问题是我还没有发现 pam-mysql 是否支持 crypt(3) 或任何替代的 pam 模块。

crpyt(3)使用用户提供的算法和 salt:crypt('password', '$5$saltstring$')为其sha256返回$5$saltstring$OH4IDuTlsuTYPdED1gsuiRMyTAwNlRWyA6Xr3I4/dQ5. 使用该crypt(3)库的任何语言都将看到该字符串并知道sha256与给定哈希一起使用并期望给定结果。

第一种方法是否足够,或者是否有一些支持 MySQL 和 crypt(3) 的 PAM 模块?

4

2 回答 2

0

使用 sha512,无论是 mysql 实现还是 php 实现。如果您使用 md5,则您使用的是已知的不安全功能,这会使您承担责任。

于 2011-11-09T04:58:12.190 回答
0

您也可以使用 3DES 加密来增强安全性。

于 2011-11-09T05:24:39.857 回答