我的网络应用程序的数据库存储敏感数据。如果攻击者获得了对数据库的访问权,他就不应该访问这些数据。这就是为什么我要在数据库中加密这些敏感数据。
首先,我想用用户的用户名或密码作为密钥来加密用户数据。这种方法的问题是用户能够更改他的用户名和密码。如果用户更改了他的用户名,应用程序就不能再解密用他的旧用户名加密的数据了。此外,攻击者可以访问用户的用户名。因此,这不是一个非常安全的解决方案。
我唯一的另一个想法是使用一个全局密钥加密所有用户数据。这样做的一个缺点是整个系统依赖于一个密钥。在这种情况下,由于新密钥和旧数据不兼容,我无法更改密钥。
你对这个问题有什么更好的想法吗?