我需要使用VARBINARY值的字符串表示形式并将其转换回实际的VARBINARY值,但是如何?
我想获取以下查询的结果并将其转换回VARBINARY值,以便可以将其解密为原始值?
CREATE TABLE Table1 (
FirstName varchar(32) NOT NULL,
LastName varchar(32) NOT NULL,
Social varbinary(128) NOT NULL)
OPEN SYMMETRIC KEY KEY_NAME
DECRYPTION BY CERTIFICATE CERT
INSERT INTO Table1(FirstName,LastName,Social)
VALUES ('John','Doe',ENCRYPTBYKEY(Key_Guid('KEY_NAME'),'123-45-6789'))
SELECT CONVERT(varchar(max), social,1) Social
FROM Table1
WHERE LastName='Doe'
答案 0 :(得分:2)
因此,通常来说,您将使用convert
来回varbinary
和varchar
。您需要使用2
作为样式,而不是1,以获取字符串表示形式。如果要进行文字转换,请使用默认值0。
declare @v varbinary(128) = (select cast('ThisIsMyPassword' as varbinary(128)))
select
@v as Val
,convert(varchar(max),@v,2) as String
,convert(varchar(max),@v,0) as Literal