我正在构建自己的游戏面板,它要求用户将其 Linux 服务器的用户名和密码引入数据库。这将允许游戏面板管理他们的服务器。我现在的问题是:
当用户输入他的 linux 用户和密码时,它以纯文本形式存储到数据库中,然后在 PHP 脚本中检索。但是,如果数据库遭到破坏,黑客也将能够破坏他们的服务器,我想不惜一切代价避免这种情况发生。
目前我正在使用注册和登录系统,我在其中实现了 password_hash($password, PASSWORD_BCRYPT)
和 password_verify
。我尝试使用该方法解决我的问题,但它需要用户输入才能将存储的密码与其匹配。
我所需要的只是以最安全的方式将用户名和密码存储到数据库中,这样当黑客设法破坏我的数据库时,那里的所有数据对他来说都将毫无用处。
我是一名使用 Javascript 和 BASH 的 PHP 网络开发新手。我在这些领域也是新手。因此,如果您能提供我对新手友好的答案,我将非常感谢您。 (因为我的第一个问题在几个小时内得到了回答,我很肯定我也会找到解决这个问题的方法)
最佳答案
最近我也了解到有关数据加密的信息,尤其是实现 GDPR (The EU General Data Protection Regulation) 法律要求的“设计隐私”概念。 .
使用 PHP 和 MySQL,您可以通过两种主要方式加密数据,使其准备好存储到您的数据库中:
- 使用 MySQL 函数 AES_ENCRYPT / AES_DECRYPT
- 在 PHP 中使用 OpenSSL 函数,特别是 openssl_encrypt和 openssl_decrypt (除其他外,它提供了 AES-256-CBC 加密)。要了解如何使用它,您可以直接查看函数文档中的示例或查看 this answer在 StackExchange 上。
如果有机会,我建议您使用 Laravel 及其 encrypter ,它提供了使用带有 AES-256-CBC 的 OpenSSL 轻松加密数据所需的一切.
关于php - 数据加密传入Mysql数据库再由PHP读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47786090/