Я создаю приложение для заметок.Я хочу перестраховать своих пользователей, чтобы их данные были зашифрованы, когда они хранятся в сети (Firebase Firestore), и что никто, кроме них, не может их прочитать.Я хочу, чтобы приложение оставалось простым, поэтому без логина и пароля (пока).
Я думаю об использовании crypto-js для выполнения этой работы.Он поддерживает много разных типов шифрования.Я смотрю на AES:
// Encrypt
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123');
// Decrypt
var bytes = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
var plaintext = bytes.toString(CryptoJS.enc.Utf8);
AES работает с секретным ключом.Я хочу сгенерировать и сохранить этот секретный ключ на стороне клиента, зашифровать данные, прежде чем они попадут в Интернет, и расшифровать данные в любое время, когда они вернутся.
Мои вопросы
- Есть ли другой тип шифрования, который бы лучше соответствовал требованиям?примечания могут быть большими кусками текста.Хорошо ли в этих случаях AES?
- Имеет ли эта стратегия смысл?Очевидно, Firestore уже зашифровывает данные, но, поскольку здесь нет логина, любой пользователь с идентификатором объекта может прочитать его (а администратор - я - может залезть в базу данных и прочитать конфиденциальные данные)