Поиск в зашифрованном поле в 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%'