[英]SQL how to encrypt nvarchar column
我有以下代碼( SQL server 2014
):
declare @f nvarchar(10) = 'فيدف '
update mytable set mycol=ENCRYPTBYPASSPHRASE('key', @f) where id = 1
declare @encrypt varbinary(750)
select @encrypt = (select mycol from mytable where id =1)
select convert(nvarchar(255),DECRYPTBYPASSPHRASE('key',@encrypt))
解密的結果是“ ??????”,這是為什么?
您確定mycol數據類型為varbinary(750)嗎? 我使用了完全相同的代碼,並且可以正常工作
確保:
Mycol = varbinary(750)
您不能將加密的值另存為nvarchar
編輯:問題更新后的新解決方案
在文字前加N
declare @f nvarchar(10) = N'فيدف '
update mytable set mycol=ENCRYPTBYPASSPHRASE('key', @f) where id = 1
declare @encrypt varbinary(750)
select @encrypt = (select mycol from mytable where id =1)
select convert(nvarchar(255),DECRYPTBYPASSPHRASE('key',@encrypt))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.