我正在构建一个笔记应用程序。 我想向我的用户保证,他们的数据在联机存储(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使用秘密密钥。我想做的是在客户端生成并存储该密钥,在数据泄露到互联网之前对其进行加密,并在数据返回时对其进行解密。