php - 数据加密传入Mysql数据库再由PHP读取

标签 php mysql database encryption

我正在构建自己的游戏面板,它要求用户将其 Linux 服务器的用户名和密码引入数据库。这将允许游戏面板管理他们的服务器。我现在的问题是:

当用户输入他的 linux 用户和密码时,它以纯文本形式存储到数据库中,然后在 PHP 脚本中检索。但是,如果数据库遭到破坏,黑客也将能够破坏他们的服务器,我想不惜一切代价避免这种情况发生。

目前我正在使用注册和登录系统,我在其中实现了 password_hash($password, PASSWORD_BCRYPT)password_verify。我尝试使用该方法解决我的问题,但它需要用户输入才能将存储的密码与其匹配。

我所需要的只是以最安全的方式将用户名和密码存储到数据库中,这样当黑客设法破坏我的数据库时,那里的所有数据对他来说都将毫无用处。

我是一名使用 Javascript 和 BASH 的 PHP 网络开发新手。我在这些领域也是新手。因此,如果您能提供我对新手友好的答案,我将非常感谢您。 (因为我的第一个问题在几个小时内得到了回答,我很肯定我也会找到解决这个问题的方法)

最佳答案

最近我也了解到有关数据加密的信息,尤其是实现 GDPR (The EU General Data Protection Regulation) 法律要求的“设计隐私”概念。 .

使用 PHP 和 MySQL,您可以通过两种主要方式加密数据,使其准备好存储到您的数据库中:

  1. 使用 MySQL 函数 AES_ENCRYPT / AES_DECRYPT
  2. 在 PHP 中使用 OpenSSL 函数,特别是 openssl_encryptopenssl_decrypt (除其他外,它提供了 AES-256-CBC 加密)。要了解如何使用它,您可以直接查看函数文档中的示例或查看 this answer在 StackExchange 上。

如果有机会,我建议您使用 Laravel 及其 encrypter ,它提供了使用带有 AES-256-CBC 的 OpenSSL 轻松加密数据所需的一切.

关于php - 数据加密传入Mysql数据库再由PHP读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47786090/

相关文章:

mysql - TIMESTAMP 默认值错误

php - SQL 更新查询在 PHP 中不起作用

大表上的Mysql查询速度慢

php - 外键链接在查询中两次引用同一个表

php - 从更改日期格式的文件加载数据

php - 从两个mysql表中选择数据

sql表优化: primary and secondary indexes

PHP 7 和学说 2.4.3 : Changing column charset from utf8 to utf8mb4

php - 按键值对PHP中对象数组的数组进行排序

php - 按建议调整图像大小,直到满足所需的文件大小