1

我现在正在玩这个来学习,所以我最终可以将它应用到我正在做的一些工作中。这是在 SQL Server 2008 R2 上。

我有一个要插入的表。TestTable用 1 列调用它Col1 varbinary(256)

所以创建一个存储过程。

create procedure [dbo].[p_TestEncrypt] @number as varchar(50)
as
   OPEN SYMMETRIC KEY TestTableKey DECRYPTION
   BY CERTIFICATE TestTableCert

   insert into dbo.TestTable
      select ENCRYPTBYKEY(KEY_GUID('TestTableKey'), @number)

所以..如果我做一个

execute dbo.p_TestEncrypt '123456'

它运行良好但是当我运行我得到的解密代码时:1

但是如果我这样运行它

OPEN SYMMETRIC KEY TestTableKey DECRYPTION
BY CERTIFICATE TestTableCert

insert into dbo.TestTable
select ENCRYPTBYKEY(KEY_GUID('TestTableKey'), '123456')

当我运行解密代码时,我得到:123456

我不知道为什么..有什么想法吗?

4

0 回答 0