我正在编写一个 Web 应用程序,将来某个时候需要执行列级加密它将一部分数据存储到我们在 SQL Server 2008 Express 上运行的数据库中。
通过 beta1 进行设计并以纯文本形式记录数据,然后在 beta1 和 beta2 之间添加加密,这将简化应用程序开发。这在 SQL Server 2008 Express 中可行吗?采用这种方法有什么明显的缺点吗?
答案1
由于列级加密完全由您的应用程序控制,因此何时执行此操作完全由您决定。如果您计划稍后加密数据,我会在表中添加一列,告诉您该行使用了哪种加密。
它可能是一个位标志“IsEncrypted”,也可能是一个更复杂的外键,指向一个表,其中列出了可用于加密数据的不同证书(这样,当需要替换证书时,您可以轻松识别哪些行已使用哪个证书加密)。
然后在应用程序中添加逻辑以使用这个额外的列来确定如何/何时加密/解密值。