Я занимаюсь разработкой веб-приложения с использованием Firebase, в котором учителя могут создавать задания, а учащиеся могут отправлять файлы в этом задании. Я хочу реализовать функцию пароля, при которой учитель сможет установить пароль при создании задания, и только ученики, которые знают пароль, смогут его отправить.
Я думал о реализации этой функции следующим образом:
Когда учитель установит пароль, я отправлю пароль в облачную функцию Firebase , которая зашифрует пароль и сохранит его в базе данных реального времени Firebase , используя Firebase Admin SDK . Когда студенты отправят пароль, пароль будет отправлен в облачную функцию, которая расшифрует действительный зашифрованный пароль (который хранится в базе данных в реальном времени), сопоставит его с паролем, отправленным клиентом, и отправит ответ на запрос. клиент, содержащий сообщение, которое сообщит пользователю, совпадает ли пароль или нет.
У меня четыре вопроса.
- Будет ли этот способ (описанный выше) достаточно безопасным?
- Если этот способ безопасен, то как мне зашифровать пароль? Есть ли библиотечная функция для шифрования данных в облачных функциях Firebase? Или я должен использовать свой собственный алгоритм шифрования?
- Безопасно ли хранение зашифрованного пароля в базе данных Firebase в реальном времени? Если нет, то где его хранить?
- Если этот способ не защищен, то как я могу реализовать описанную выше функцию?