存储过程中的数据加密

时间:2013-08-22 14:28:17

标签: sql encryption sql-server-2008-r2

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

我有一个我要插入的表。使用1列TestTable

将其称为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

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

0 个答案:

没有答案