我想在Catégories
的表格中添加EncryptByKey
这样的法语单词。这是我的疑问:
OPEN SYMMETRIC KEY SymmetricKey1
DECRYPTION BY CERTIFICATE Certificate1;
insert into tbl_Name (Name)
values (EncryptByKey( Key_GUID('SymmetricKey1'), CONVERT(Nvarchar,'Catégories')))
但是当我使用以下查询检索值时,我得到了慃㽴潧楲獥
而不是Catégories
OPEN SYMMETRIC KEY SymmetricKey1
DECRYPTION BY CERTIFICATE Certificate1;
SELECt CONVERT(NVARCHAR(max),DECRYPTBYKEY(Name)) as Name from tbl_Name
你可以帮我这个吗?
答案 0 :(得分:0)
我认为此问题是由 collation 引起的,因为数据存储在UNICODE数据类型中。我认为您需要的是,当您选择数据时,您需要确保对执行请求的用户(即他们的区域设置)使用适当的排序规则。
您可以尝试这样:
OPEN SYMMETRIC KEY SymmetricKey1
DECRYPTION BY CERTIFICATE Certificate1;
insert into tbl_Name (Name)
values (EncryptByKey( Key_GUID('SymmetricKey1'), N'Catégories'))
N
将确保数据以unicode格式存储在数据库中。
答案 1 :(得分:0)
写法语单词和前缀“N
”将字符串标记为Unicode,然后加密:
insert into tbl_Name (Name)
values (EncryptByKey( Key_GUID('SymmetricKey1'), N'Catégories'))