当我使用 belpow 查询时,它会返回实际数据
declare @encrypt varbinary(200);
select @encrypt = EncryptByPassPhrase('key','VALUE');
select convert(varchar(100),DecryptByPassPhrase('key',@encrypt));
//returns back "VALUE"
但是当我尝试将加密值直接传递给函数时:
declare @encrypt varbinary(200);
select EncryptByPassPhrase('key','VALUE'); //suppose value is kjkljggkjkhkj
select convert(varchar(100),DecryptByPassPhrase('key','kjkljggkjkhkj'));
上述查询返回 NULL 作为输出。我尝试将加密值转换为 varbinary(200),然后传递给函数,但仍然得到 NULL 输出。这里可能有什么问题?
这里有一些建议
声明@加密varbinary(200) 选择 @encrypt = EncryptByPassPhrase('key','VALUE') select Convert(varchar(100),DecryptByPassPhrase('key',@encrypt)) // 这很好用
// 现在,如果您想通过直接将加密值作为字符串传递来解密: 声明 @cryptedString varchar(200); set @encryptedString = Convert(varchar(200), @encrypt, 1) // 将 varbinary 转换为 varchar select Convert(varchar(100),DecryptByPassPhrase('key', @encryptedString)) // 这应该有效