我需要在我的Web应用程序使用的数据库中存储(并且可能更改)一个特定的全局(即不相对于任何特定用户)数据。
它的值应该在数据库级别加密,但我的Web应用程序的用户应该能够读取其解密的值,而无需键入任何密码。
此Web应用程序的用户通过传统的用户名/密码机制进行身份验证。
是否可以按照描述实现可访问的加密值?
答案 0 :(得分:1)
是 - 这是可能的,只需在需要时使用加密密钥加密和解密数据。真正的问题是如何在程序需要时获取加密密钥。您的选择取决于您在应用程序中所需的安全级别。
一些选项:
对这类事情的真正安全解决方案通常非常麻烦。
答案 1 :(得分:1)
如果您的数据库本身被认为是安全的,您可能会提供使这些数据可访问的存储过程。然后,您可以将加密密钥放入用户无法读取的表中,但允许它们执行存储过程,而该存储过程又允许读取密钥。
每个数据库产品的存储过程各不相同,但今天大多数都以某种方式允许这样做。您甚至可以创建一个在访问时解密的视图,并使用触发器来加密更改。