Php 将文本加密存储在mysql数据库中的最佳方法
我想知道在数据库中存储文本并对其进行加密以防止其他人(管理员)读取文本的最佳方法。我允许用户编写(最多)段纯文本,然后存储在数据库中。然后,此文本将显示回用户帐户中。这意味着,一旦我对数据进行加密并将其存储在数据库中,我就必须能够对数据进行解密。 (我已经用PHP创建了这个项目) 谢谢和Php 将文本加密存储在mysql数据库中的最佳方法,php,mysql,database,encryption,Php,Mysql,Database,Encryption,我想知道在数据库中存储文本并对其进行加密以防止其他人(管理员)读取文本的最佳方法。我允许用户编写(最多)段纯文本,然后存储在数据库中。然后,此文本将显示回用户帐户中。这意味着,一旦我对数据进行加密并将其存储在数据库中,我就必须能够对数据进行解密。 (我已经用PHP创建了这个项目) 谢谢和AES_DECRYPT是加密/解密字符串的简单方法,无需自己编写代码,可在MySql 5上获得 请注意,AES\u ENCRYPT的输出是一个二进制字符串,需要存储在二进制数据类型的列中(最合适的是BLOB),而
AES_DECRYPT
是加密/解密字符串的简单方法,无需自己编写代码,可在MySql 5上获得
请注意,AES\u ENCRYPT
的输出是一个二进制字符串,需要存储在二进制数据类型的列中(最合适的是BLOB
),而不是通常用于文本数据的文本类型,如text
或VARCHAR
问题是您必须将加密密钥存储在某个地方,并且您必须以某种方式阻止管理员访问它。我不知道这是否可能(具体是什么管理员?你要找的是什么。此外,如果您希望数据真正安全,则需要使用HTTPS进行传输,因为一旦PHP脚本解密了密码文本(当用户访问文本时),纯文本将通过服务器的NIC发送出去。因此,狡猾的管理员或攻击者只需嗅探接口上的流量并记录流量。事实上,您无法阻止管理员查看这些文本,因为他也可以读取加密密码并解密它们
如果管理员可以访问数据库和后端,但不能访问代码,那么这将是唯一可行的情况 阅读这里:您打算如何存储、提取、旋转和以其他方式管理加密密钥,使其他人无法读取加密数据?@Justice:我不知道。如果没有更详细的应用知识,就不可能提出这样的建议。@Justice-这取决于要求-你所说的“其他人”是指谁?如果它的用户能够完全访问服务器,唯一的选择就是使用客户端(javascript)加密。即使这样,他们也可以修改javascript代码,比如不加密数据。真的吗?仅当您存储密码本身时。如果您只存储密码哈希,管理员将无法解密文本。