簡體   English   中英

SQL如何加密nvarchar列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM