使用LINQTOSQL在SQL Server 2008中现有表的列上进行加密/解密



我们在数据库中有一个表,例如tbl_x。该表在相当长的一段时间内,大约有2000行。行更新并插入此表中,只有一段时间。创建此表时,不考虑保护和安全性。但是,该表由我们认为需要一定程度保护的数据组成。

我们现在要加密表中某些列的值,然后再保存任何内容。我们想在显示在UI上(或执行其他操作之前)之前解密该值。

所以场景是:

DB服务器:SQL Server 2008

TBL_X模式:

Id int not null,
Name varchar(100) not null,
CustAccount varchar(100) not null,
CustPrefText varchar(200) not null,
CreatedBy int not null

我们希望在列上加密Custaccount和Custpreftext。

我们使用LINQ2SQL获取并在表中设置数据。因此,我们正在考虑达到这样的上述要求的事情:

public partial class tbl_X
{
    public string CustAccount
    {
        get
        {
            return Crypter.Decrypt(this.CustAccount)
        }
        set
        {
            this.CustAccount= Crypter.Encrypt(value)
        }
   }
}

问题:

  1. 是否有更好的方法来处理更改?
  2. 表中现有数据可能会在手动更新它们时引起任何问题?
  3. 是否需要更改上述列的数据类型?

预先感谢。请让我知道是否需要其他任何详细信息。

始终加密是您所需要的。它是一种客户端加密技术,它将与Ado.net SQLClclient一起使用,因此也将与Linqtosql一起使用。以下是更多详细信息:始终重新加工客户开发

但是,您将需要SQL Server 2016。

最新更新