Как мы можем реализовать поиск по зашифрованным данным в базе данных mongoDB?Javascript

Форум по Javascript
Ответить
Гость
 Как мы можем реализовать поиск по зашифрованным данным в базе данных mongoDB?

Сообщение Гость »


Я использую пакет mongoose-field-encryption, который позволяет мне шифровать и расшифровывать данные перед их сохранением и доступом к ним. Зашифрованные поля — имя, адрес электронной почты и номер. Мне нужно реализовать функцию поиска по зашифрованным полям непосредственно в самом запросе.

импортировать криптовалюту из «crypto» импортировать мангуста, {схема} из 'мангуста' const mongooseFieldEncryption = require("mongoose-field-encryption").fieldEncryption; импортировать { EncryptionSecret } из '../../config' const userSchema = новая схема({ электронная почта: { тип: Строка, совпадение: /^\S+@\S+\.\S+$/, требуется: правда, уникальный: правда, отделка: правда, нижний регистр: правда, индекс: правда, }, имя: { тип: Строка, отделка: правда }, Контактный номер: { тип: Строка, по умолчанию: ноль } }, { временные метки: правда }) userSchema.plugin(mongooseFieldEncryption, { поля: ["электронная почта", "contactNumber"], секрет: шифрованиесекрет, saltGenerator: функция (секрет) { вернуть «1452819847269312»; }, }); const model = mongoose.model('User', userSchema) экспортировать константную схему = model.schema экспортировать модель по умолчанию импортировать {Пользователя } из '.' экспортировать const getUsers = async (req, res) => { пытаться { let {электронная почта} = req.query если (электронная почта) { const messageToSearchWith = новый пользователь ({электронная почта}); messageToSearchWith.encryptFieldsSync(); query.email = messageToSearchWith.email } пусть пользователи = ждут User.find(запрос) вернуть res.status(200).json(пользователи) } поймать (ошибка) { console.log('ошибка при получении пользователей', ошибка) } } Выше представлена ​​модель и функция. Зашифрованные данные хранятся в базе данных, но я не могу их искать.

Я попытался зарегистрировать зашифрованные поля, сохраняемое электронное письмо и зашифрованное электронное письмо в журналах оказались разными. Они должны быть одинаковыми для точного соответствия.

Мне нужно выполнить поиск по зашифрованному сообщению

Сообщите мне, что нужно изменить, чтобы все работало так, как ожидалось.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»