Как мы можем реализовать поиск по зашифрованным данным в базе данных mongoDB? ⇐ 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('ошибка при получении пользователей', ошибка) } } Выше представлена модель и функция. Зашифрованные данные хранятся в базе данных, но я не могу их искать.
Я попытался зарегистрировать зашифрованные поля, сохраняемое электронное письмо и зашифрованное электронное письмо в журналах оказались разными. Они должны быть одинаковыми для точного соответствия.
Мне нужно выполнить поиск по зашифрованному сообщению
Сообщите мне, что нужно изменить, чтобы все работало так, как ожидалось.
Я использую пакет 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('ошибка при получении пользователей', ошибка) } } Выше представлена модель и функция. Зашифрованные данные хранятся в базе данных, но я не могу их искать.
Я попытался зарегистрировать зашифрованные поля, сохраняемое электронное письмо и зашифрованное электронное письмо в журналах оказались разными. Они должны быть одинаковыми для точного соответствия.
Мне нужно выполнить поиск по зашифрованному сообщению
Сообщите мне, что нужно изменить, чтобы все работало так, как ожидалось.
Мобильная версия