我们有一个只使用MD5函数存储密码的PHP应用程序(没有salt)。
我们将OpenSSH设置为使用pam-mysql对同一数据库中的用户进行身份验证。
我们想切换到使用散列密码,我们正在考虑: 1.自己做,(类似于md5($salt."$".$password)或hash("sha256", $salt."$".$password)),或者2.使用php的加密函数(如果可用的话,它使用操作系统加密(3))。
问题是,我还没有发现pam-mysql是否支持crypt(3)或任何支持的替代pam模块。
crpyt(3)使用用户提供的算法和salt:crypt('password', '$5$saltstring$')表示sha256,它返回$5$saltstring$OH4IDuTlsuTYPdED1gsuiRMyTAwNlRWyA6Xr3I4/dQ5。任何使用crypt(3)库的语言都将看到该字符串,并知道将sha256与给定的散列一起使用,并期望得到给定的结果。
第一种方法足够了吗?还是有一些PAM模块支持MySQL和crypt(3)?
发布于 2011-11-09 12:58:12
使用sha512,可以是mysql实现,也可以是php实现。如果你使用md5,你使用的是一个已知的不安全函数,这会让你承担责任。
发布于 2011-11-09 13:24:40
您也可以使用3DES加密以获得更强的安全性。
https://stackoverflow.com/questions/8059988
复制相似问题