У меня есть конечная точка POST API, которая получает данные пользователя, включая пароль.
Я хочу зашифровать пароль с помощью AES-256-CBC и сохранить его в MongoDB.
У меня также есть конечная точка GET API, которая извлекает пользовательские данные, и я хочу расшифровать сохраненные пароли перед отправкой ответа на client
Кроме того, в моем приложении есть панель поиска, но я сталкиваюсь с проблемами с шифрованием и расшифровкой паролей, поскольку это мешает функции поиска. Ранее я пробовал использовать bcrypt и crypto, но эти подходы делали невозможным эффективный поиск пользователей по имени пользователя или другим критериям.
Вот краткий обзор моей реализации: [list] [*]У меня есть конечная точка POST API, которая получает данные пользователя, включая пароль. [*]Я хочу зашифровать пароль с помощью AES-256-CBC и сохранить его в MongoDB. [*]У меня также есть конечная точка GET API, которая извлекает пользовательские данные, и я хочу расшифровать сохраненные пароли перед отправкой ответа на client [*]Кроме того, в моем приложении есть панель поиска, но я сталкиваюсь с проблемами с шифрованием и расшифровкой паролей, поскольку это мешает функции поиска. Ранее я пробовал использовать bcrypt и crypto, но эти подходы делали невозможным эффективный поиск пользователей по имени пользователя или другим критериям. [/list] Я реализовал следующее: код: [code]import { NextApiRequest, NextApiResponse } from "next"; [/code] Импортировать
< pre class="snippet-code-js lang-js Prettyprint-override">[code]import { NextApiRequest, NextApiResponse } from "next"; import connectMongo from "../../lib/mongoose"; import { form } from "../../models/Form"; export default async function handler( req: NextApiRequest, res: NextApiResponse ) { if (req.method === "GET") { try { await connectMongo(); const forms = await form.find( {}, { name: 1, username: 1, password: 1, notes: 1, url: 1, _id: 0 } ); res.status(200).json({ success: true, data: forms }); } catch (error) { console.error(error); res.status(500).json({ success: false, error: "Failed to fetch data" }); } } else { res.status(405).json({ message: "Method not allowed" }); } }[/code]
[code]import { NextApiRequest, NextApiResponse } from "next"; import connectMongo from "../../lib/mongoose"; import { form } from "../../models/Form"; export default async function handler( req: NextApiRequest, res: NextApiResponse ) { if (req.method === "POST") { // Handle POST request to save data const { name, username, password, notes, url } = req.body;