有没有办法将“混淆”文本插入MySql,这样我就无法读取我的用户存储在其中的内容


Is there a way to insert "obfuscatd" text into MySql, so I can't read what my users store inside it?

我有一个非常简单的表格,由几个字段组成,其中一些我希望人眼无法读取。通过"可读",我的意思是我希望能够使用任何管理工具(例如PhpMyadmin)打开数据库,并查看这些字段由乱码/受保护的文本组成。

我将尝试重新表述:有没有办法避免客户的评论,例如"但您负责网站和数据库,因此您可以阅读其所有内容!想想私人数据、消息等。人们不喜欢被任何人"阅读"的东西,当然甚至网站管理员也不行。

在不访问每个带状疱疹文本信息的情况下管理数据库的最佳方法是什么?

注意:数据库必须可以通过PHP访问,PHP需要运行通常的SQL INSERT,SQL SELECT,...查询。

如果您的客户不信任您读取他们的数据,那么您就遇到了问题。这不是一个技术问题,而是一个社会问题。当然,您可以加密他们的数据(甚至只是base64编码)以使其不可随便读取,但在某些时候数据必须是可解密的才能对他们有用。

单向加密(哈希)在这里没有用,因为您需要能够恢复原始内容。固定的加密密钥不会完成这项工作,因为您可以随意读取内容。也许客户端的密码可以用作加密数据的密钥,以便只有他们知道使用的密钥?每当他们更改密码时,都必须使用旧密码解密数据,然后使用新密码重新加密。如果他们忘记了密码并需要生成新密码,则加密数据将毫无用处。

如果问题是用户不信任服务器环境的数据,则唯一有效的解决方案是在数据到达服务器环境之前对其进行加密。 您没有指定此数据是什么或用例是什么或谁需要访问它,但有一些方法可以通过以下方法完成客户端加密:

加密-js

本SO问题讨论了其他可行的选择

看看MySQL的参考手册,有很多函数可以用来加密/解密。

MySQL 参考手册:加密和压缩函数