我现在正在玩这个来学习,所以我最终可以将它应用到我正在做的一些工作中。这是在 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
我不知道为什么..有什么想法吗?