小编moh*_*gan的帖子

就像在 SQL Server 中对加密列进行运算符搜索一样

我在 sqlserver 中有一个表,我的表有一个字符串字段,例如 FirstName(这只是示例!)。在插入数据库之前,此字段“EncryptByPassPhrase”。

Before encode: Ali
After  encode: 0x010000001D905174BB7947AE1C600A4AB564A123310F92C21C9A4221
Run Code Online (Sandbox Code Playgroud)

现在我会在这个字段上搜索,例如我会得到所有包含字符“Al”的字段。

我可以解码此字段并进行搜索,例如:

select * from EncodeTest e
where  dbo.Decoder(e.FirstName) like '%Al%'
Run Code Online (Sandbox Code Playgroud)

但是这种方式在许多记录上非常慢。请帮助我寻求最佳解决方案。

谢谢。


我尝试过的:

declare @EncodedName varbinary(max)
select @EncodedName =EncryptByPassPhrase('key', cast( @Name as varbinary(max)) )


declare @DecodedName nvarchar(max)
select @DecodedName=convert(varchar(100),DecryptByPassPhrase('key',cast( @EncodedName as varbinary(max)) ))

select * from EncodeTest e
where dbo.Decoder(e.FirstName) like '%Al%'
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server encryption

2
推荐指数
1
解决办法
1582
查看次数

标签 统计

encryption ×1

sql ×1

sql-server ×1

t-sql ×1