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

发布于 2024-12-14 12:50:46 字数 682 浏览 4 评论 0原文

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

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

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

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

We have a PHP application that stores passwords just using the MD5 function (with no salt).
We have OpenSSH set to use pam-mysql to authenticate users from the same database.

We would like to switch to use hashed passwords and we are considering either: 1. doing it ourselves, (something like md5($salt."$".$password) or hash("sha256", $salt."$".$password)), or 2. using php's crypt function (which uses the OS crypt(3) if available).
The problem is that I have not found whether pam-mysql supports crypt(3) or any replacement pam module that does.

crpyt(3) uses a user supplied algorithm and salt: crypt('password', '$5$saltstring$') for sha256 which returns $5$saltstring$OH4IDuTlsuTYPdED1gsuiRMyTAwNlRWyA6Xr3I4/dQ5. Any language that uses the crypt(3) library will see that string and know to use sha256 with the given hash and expect the given result.

Is the first method sufficient or is there some PAM module out there that supports MySQL and crypt(3)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

折戟 2024-12-21 12:50:46

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

Use sha512, either a mysql implementation or a php implementation. If you use md5 you're using a known insecure function which opens you up to liability.

梦里梦着梦中梦 2024-12-21 12:50:46

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

you may also use 3DES encryption for stronger security.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文