Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在MySQL中安全地存储密码,但PAM仍可访问_Php_Mysql_Authentication_Openssh_Pam - Fatal编程技术网

Php 在MySQL中安全地存储密码,但PAM仍可访问

Php 在MySQL中安全地存储密码,但PAM仍可访问,php,mysql,authentication,openssh,pam,Php,Mysql,Authentication,Openssh,Pam,我们有一个PHP应用程序,它只使用MD5函数存储密码(不含盐)。 我们设置了OpenSSH,用于对来自同一数据库的用户进行身份验证 我们想切换到使用哈希密码,我们正在考虑:1。自己动手做,(类似于md5($salt.$”$password)或hash(“sha256”、$salt.$”$password))或2。使用php的crypt函数(如果可用,则使用OS crypt(3)。 问题是,我没有发现pammysql是否支持crypt(3)或任何替代pam模块 crpyt(3)使用用户提供的算法和

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

我们想切换到使用哈希密码,我们正在考虑:1。自己动手做,(类似于
md5($salt.$”$password)
hash(“sha256”、$salt.$”$password)
)或2。使用php的crypt函数(如果可用,则使用OS crypt(3)。
问题是,我没有发现pammysql是否支持crypt(3)或任何替代pam模块

crpyt(3)
使用用户提供的算法和salt:
crypt('password','$5$saltstring$')
用于
sha256
,它返回
$5$saltstring$OH4idutlsutypded1GsuirmyTawnlWya6XR3I4/dQ5
。任何使用
crypt(3)
库的语言都会看到该字符串,并知道如何将
sha256
与给定的散列一起使用,并期望得到给定的结果


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

使用sha512,可以是MySQL实现,也可以是php实现。如果您使用md5,那么您使用的是一个已知的不安全函数,这会让您承担责任

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

在服务器exchange上问这个问题可能更好
pam_unix
支持
crypt()
密码很好,sbeam。@sbeam我的理解是,可执行密码(1)和库密码(3)之间存在差异它是围绕许多加密函数的标准包装器。你有相反的信息吗?你所想到的md5碰撞vulns非常轻微;md5仍然相当好,没有立即的危险。但是,正如您所说,sha512更强大……
crypt(3)
sha256
和许多其他任何程序都可以使用的算法的系统实现。您可以通过salt的前缀选择算法。我的问题不是使用哪种算法。我知道MD5碰撞,并且我在学校里致力于制造它们。