我正在编写一些简单的登录脚本。我只是想知道,在 MySQL 中使用散列和加密函数而不是 PHP 或其他方式有什么优势吗?
我知道使用存储过程,我可能会传输不安全的敏感信息。另一方面,它可能更易于维护。
使用它们有什么好处吗?
我正在编写一些简单的登录脚本。我只是想知道,在 MySQL 中使用散列和加密函数而不是 PHP 或其他方式有什么优势吗?
我知道使用存储过程,我可能会传输不安全的敏感信息。另一方面,它可能更易于维护。
使用它们有什么好处吗?
我看到使用 mysql 加密敏感数据的唯一问题是,如果您运行 php 的 Web 服务器位于 mysql 的不同位置,您可能会通过与这两方通信的网络发送敏感的未加密数据。
我肯定会在 MySQL 上使用 PHP 来散列密码。有很多方法可以存储和查看查询,如果有这样的查询最终存储在某个地方,那可能会很糟糕:
SELECT id FROM users WHERE username = 'User123' AND password = MD5(CONCAT('SecretSalt','MyPassword'))
如果您要存储密码,请使用设计为难以破解的散列函数。bcrypt
是一个合理的选择,这里的许多答案都详细介绍了如何实现它。
MySQL 的散列方法没有这种安全性,并且用于其他目的,例如散列文档以检查重复。