gpt4 book ai didi

java - 如何加密mysql中的某些表

转载 作者:行者123 更新时间:2023-11-28 23:32:55 25 4
gpt4 key购买 nike

目前我在做parent portal(家长监控 child 学校 Activity 的门户)。

我想加密数据库中的某些表,例如 children result,这样任何人都无法访问它。由于我缺乏数据库知识,我想不出加密的方法。

任何有知识的人都可以帮助我吗?

最佳答案

从我的角度来看,你在这里基本上要问的是

I have this database that holds sensitive information... and I don't trust it

首先,这是你应该停下来重新评估你的推理的地方。你为什么不信任你的数据库?然后你应该改变你的基础设施,这样你就可以使用数据库开发人员或其他第三方已经构建的工具来信任你的数据库和敏感信息。

如果您对此的回应是您实际上非常信任您的数据库,但您想要一个并非真正必要的额外保护层,那么这就是您可以做的事情的一个非常基本的示例.

在进行之前

You are almost guaranteed to get something wrong if you do encryption yourself.

下面的例子也不异常(exception),它有很多问题。您应该知道此示例存在生产环境中 Not Acceptable 漏洞,它是作为入门的基本建议。如果您打算研究加密数据库字段,那么您真的应该获得一些专业帮助。这不是一件可以掉以轻心的事情……你已经被警告过了。

  1. 确定哪些数据(表格列)是敏感的。个人信息、财务记录等。
  2. 确保您不需要根据这些列进行排序(如果 children.first_name 列在数据库中被加密,ORDER BY children.first_name 将不起作用)
  3. 适本地更改字段的数据类型(如果它们是整数字段,那么您需要将它们更改为 TEXT 或其他一些 CHAR 字段)
  4. 在您的应用程序中,写入数据库时​​加密字段,读取时解密:使用 AES256 和随机生成的 key ,您可以非常确保安全。您甚至可以查看像 Hashicorp Vault 这样的工具在运行时以编程方式检索此 key 。这样, key 就不会持久保存到应用程序服务器的硬盘驱动器上,而只会保存在内存中。

现在您已经理论上将您的服务的攻击面限制在您的应用程序服务器上,并且理论上让任何人都很难从您的数据库中提取数据,如果他们得到他们掌握数据。再次开始问“为什么我不信任我的数据库?有人怎么能拿到这些数据?”然后从那里开始。

请记住,密码应该是散列和加盐的,而不是加密的

关于java - 如何加密mysql中的某些表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36878853/

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