PHP MySQL-动态加密而不存储密钥的解密数据
|
我已经经历了几个有关此的SO问题,而我的方法在想要加密数据方面有所不同。这是我想做的..
基本上,我所有的客户数据都存储在数据库中,三周或四周后,我不再需要他们的数据,例如地址,城市,州,邮政编码,电话,电子邮件地址,订购的产品等。
现在,这些数据以原始格式存储在数据库(mysql)中。
我的想法是,几天后,我将加密mysql数据库中的所有数据,并且不存储密钥,而是每次都通过输入框手动输入(如果要加密,或者出于某种原因)解密它只是为了在屏幕上显示)。
所以基本上这就是它的工作方式。
1)在mysql中选择客户的记录
2)通过输入框获取加密密钥
3)通过加密数据更新mysql记录
这是我的两个问题...
1)从某种意义上说,如果数据库受到破坏,则数据将得到保护,上述方法是否是一个好的策略?此外,如果入侵者获得了对代码的访问权,他们将无法访问密钥,因为密钥不会存储在任何php文件中的任何位置。
2)我应该如何设置加密系统?我是否应该使用mysql的函数ѭ0Please(请注意,数据的长度可能会有所不同,例如地址,电子邮件地址或有关客户的其他信息)
没有找到相关结果
已邀请:
4 个回复
呈辖玫割善
(很好-这也适用于您可能使用的任何其他加密方法)返回二进制字符串。您需要将其存储在可以容纳二进制字符串(
,
,
变体)的列中,而您可能会将预加密信息存储在非二进制字符串列中。因此,您可能需要为加密信息设置另一组列,或者使用一些基于文本的编码来将加密数据放入与未加密形式相同的列中。 另外,您应该在应用程序逻辑中非常小心,以免意外地用未加密的数据填充加密的行(请考虑以下情形:查看记录->解密->保存更改)。 最后,如果坏人对您的服务器/应用程序具有写访问权,那么他们很可能会拦截并保存加密密钥。由于所有密钥的密钥可能是相同的(由于密钥管理的考虑),这足以使他们获取所有数据。但是,如果他们仅管理读取访问权限,那就太好了。
葛瞎说漓
烷刨画颠离
稳赣苍卯改