gpt4 book ai didi

php - 在 MySQL 中加密/解密大文本数据的推荐方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 06:36:47 25 4
gpt4 key购买 nike

我有一个在内网运行的客户端/服务器应用程序,我有对数据库的一个表的一个字段中的数据进行加密的需求。该字段目前是 TEXT 数据类型,据我所知,这不利于 MySQL 中的加密。存储在字段中的文本类似于员工绩效评估,其中包含来自主管的叙述性评论。由于系统运行的网络对个人信息的限制,这些数据不能以纯文本形式存储。数据还需要由具有不同“角色”(身份验证级别)的不同用户通过应用程序的客户端进行编辑。

所以...我一直在研究如何加密这些数据,这是目前我所了解的:

  • MySQL 文档解释了 AES 函数,我应该将字段数据类型更改为 BLOB 以容纳加密信息。
  • 必须修复 key (即,不要像我在 SO 上读到的那样使用用户密码等),因为不同的用户需要能够编辑/查看评论。
  • 我认为最好的选择是存储 key 并将其作为变量传递到 php 代码中,类似于我对应用程序的 MySQL 登录信息所做的处理。

在这种情况下使用 AES 函数是否是处理此问题的合适方法,或者是否存在我不知道的问题?由于文本的潜在长度,我确实想知道问题(性能?)。我发现的大多数示例都与加密较小的数据有关:例如姓名、地址、信用卡号等

如有任何建议,我们将不胜感激。提前致谢!

最佳答案

使用 AES,在 CBC 或 CTR 模式下都可以。避免使用 ECB 模式,因为它不安全。使用 PKCS7 填充。

如果要将加密文件存储为文本而不是 BLOB,则在保存到数据库之前将二进制密文转换为 Base64。 Base64 仅使用文本字符。在解密之前,您显然需要将 Base64 转换回二进制。

您的主要问题是 key 处理,因为每个有权访问数据库的人都需要 key ,而您不能将 key 存储在数据库本身中。您可能需要就此听取一些专家建议,因为这很重要。

关于php - 在 MySQL 中加密/解密大文本数据的推荐方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7361713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com