mabbaszadegan Ответов: 1

Поиск в зашифрованном поле в SQL server


Привет всем!
У меня есть таблица в sqlserver, моя таблица имеет поле в виде строки, например FirstName (это просто пример!). Это поле "EncryptByPassPhrase" перед вставкой в базу данных.

Before encode: Ali
After  encode: 0x010000001D905174BB7947AE1C600A4AB564A123310F92C21C9A4221

Теперь я бы искал по этому полю, например, я бы получил все поля, содержащие символы 'Al'.
Я могу расшифровать это поле и выполнить поиск по таким данным, как:
select * from EncodeTest e
where  dbo.Decoder(e.FirstName) like '%Al%'


Но этот путь очень медленный на многих числах записи.
Пожалуйста, помогите мне найти лучшее решение.

Спасибо.

Что я уже пробовал:

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%'

1 Ответов

Рейтинг:
0

Gerry Schmitz

Планировать заранее.

Расшифруйте один раз; запросите несколько раз.