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