如何使用对称密钥解密c#或sql server中的字符串

时间:2018-02-21 10:40:32

标签: c# sql-server encryption-symmetric

以下是我的方案

  1. 我从文本文件中的客户端收到加密值(使用DBMS_CRYPTO.ENCRYPT_3DES_2KEY)(在Oracle中完成加密)
  2. 我从客户端收到用于加密的密钥(AES192 30字符密钥)。
  3. 我正在使用SQL Server 2012.如何在SQL或C#中解密此值?

1 个答案:

答案 0 :(得分:0)

这基本上需要遵循以下提到的步骤:

  1. 验证SQL Server主密钥
  2. 创建主密钥加密密码
  3. 创建自签名证书
    • 证书是一个经过数字签名的安全对象,包含SQL Server的公共(以及可选的私有)密钥
  4. 创建对称密钥。
  5. 加密列(需要varbinary类型)
  6. 添加记录:

    示例语法:

    OPEN SYMMETRIC KEY SymmetricKey1 DECRYPTION BY CERTIFICATE Certificate1;
    -- Performs the update of the record 
       INSERT INTO dbo.test VALUES 
        (x, EncryptByKey(Key_GUID('SymmetricKey1'), CONVERT(varchar,'4545-58478-1245'))); 
       GO
    

    要逐步执行,请按照this mssqltips article