当前位置: 首页 > 知识库问答 >
问题:

我应该加密整个数据库,还是只加密数据库中的字段?[副本]

程旭尧
2023-03-14

我们在确保遵守刚刚生效的新GDPR方面落后了,我目前正在考虑为我们的电子商务网站加密数据库中存储的数据。我意识到加密并不是强制性的,但我认为它更不是一种有用的附加安全性。

我的问题是:在静止状态下加密整个数据库,以及使用我自己的加密存储值,有什么优点/缺点吗?这是你会做的事情,还是你会考虑这些方法中的一种就足以为个人数据提供良好的安全?

我的理论是,在使用PHP脚本存储和检索值时加密这些值,如果有人以某种方式掌握了我们的数据库备份,将会保护我们--如果有人获得了数据库本身的访问权,表加密将会保护我们。

我一直在研究:Innodb表空间加密

这将用于加密整个数据库表。然后,我将使用PHP的openssl_encrypt函数手动加密发送到数据库的任何个人数据。

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

共有1个答案

姚煜
2023-03-14

我认为这里的一个很好的经验法则是加密您知道以后不需要执行搜索的个人识别信息。这在服务的可用性和保护用户信息安全之间保持了平衡。

例如,加密用户ID和他们的电子邮件是愚蠢的。然而,用户的名字、姓氏和实际地址将是很好的候选项。相对来说,您不太可能对此信息执行查找。

更高的安全信息可能需要更深入的方法。为此,您可以从用户密码中导出加密密钥,并使用该密钥加密信息。这样做的好处是,即使数据库服务器和API服务器都受到危害,攻击者也无法检索此信息。缺点是,您需要用户输入他们的密码,任何时候您需要使用这些信息。

 类似资料:
  • 问题内容: 我被要求 对db中的各个db字段 进行 加密 。 问题是这些字段在读取后需要解密。 我正在使用 Django 和 SQL Server 2005 。 有什么好主意吗? 问题答案: 是的。告诉任何告诉你真实的人。没有道理/没有道理。如果是关于存储的值的,那么企业版2008可以存储加密的DB文件。 否则,如果您真的需要(具有所有缺点),只需对其进行加密并将其存储为字节字段。

  • Android原生是不支持数据库加密的,所以要想加密数据库就需要使用其它的方式。而这个SDK是从原生Android4.0源码里单独移植SQLITE模块,并将这个模块编译时加入加密方法,因为SQLITE源码中是有加密的接口,所以移植时就只需将这个预编译参数加入和一些文件即可。 这个SDK只支持Android2.1以上的版本。

  • 问题内容: 我刚刚发现了信息,我只是在检查是否有与项目中的一些朋友一起遇到约束的想法,尽管这更多是我一直在尝试找到的理论问题一个答案一段时间。 我不太喜欢密码学,但是如果我不够清楚,我将尝试编辑/评论以澄清任何问题。 简而言之,环境是这样的: 前端用于访问加密/解密密钥,后端用于存储和查询的应用程序。 例如,有一个您无法访问几个字段的数据库,让我们说“地址”,它通常是文本/ varchar。 您无

  • 本文向大家介绍ASP.NET web.config中 数据库连接字符串加密解密,包括了ASP.NET web.config中 数据库连接字符串加密解密的使用技巧和注意事项,需要的朋友参考一下 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容 加密: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50

  • 我在文档中看到Firebase实时数据库是加密的<但是有一些术语我不完全理解: Firebase服务使用HTTPS加密传输中的数据,并从逻辑上隔离客户数据。什么在逻辑上隔离了客户数据 平均值 “此外,几个Firebase服务还加密其静态数据:Firebase实时数据库Firebase测试实验室”有人能用外行的术语解释一下吗

  • 问题内容: 使用MySQL,如果我有一个字段,例如登录名,我将如何在sql命令中将该字段更新为1? 我正在尝试创建一个INSERT查询,该查询创建firstName,lastName和登录名。但是,如果firstName和lastName的组合已经存在,则将登录数增加1。 因此表格可能看起来像这样。 我需要一个命令,该命令在运行时会插入一个新的人(即Tom Rogers),或者如果使用约翰·琼斯的