我发现自己的情况是,我在网站上有一组用户,他们都存储了用户名和密码,允许他们通过SOAP自动访问第三方服务。这个想法是每个用户只需要登录主站点就可以使用各自存储的每个服务的用户信息来访问多个服务。我觉得这些数据应该在存储时在我的数据库中加密,然后在用户需要访问给定服务时传递给php / SOAP函数时自动解密。什么是实现这一目标的最佳方式?
我看过AES_ENCRYPT,但似乎加密和解密使用了一个必须存储在我的代码中的密钥,用纯文本...这似乎不是最明亮的要做的事。无论如何,这是我第一次出现这样的事情(如果你不知道的话);如果你能给我一些关于如何处理这个问题的建议,我真的很感激。
非常感谢提前
答案 0 :(得分:2)
你偶然发现了加密数据库中数据的最大问题:
➽在哪里存放钥匙?
加密无法解决数据安全问题,只能将其“集中”到密钥上。无论您将密钥存储在何处,您的应用程序都必须能够解密数据,因此可以对攻击者进行解密。我知道这个问题有两种可能的解决方案:
P.S。我建议在将存储到数据库之前对其进行加密,因为MySQL AES_ENCRYPT在没有IV的情况下使用ECB模式。这允许搜索某个值,但安全性较低(我很确定您不想通过密码搜索)。