- 加密是怎么实现的?
- 用的浏览器原生 Web Crypto API,不是自己写的加密算法(手写加密几乎必然有漏洞)。流程:
① 生成随机 salt(16 字节)和 IV(12 字节);
② 用 PBKDF2-SHA256 把你的口令迭代 10 万次派生成 256 位密钥(防暴力破解);
③ 用 AES-256 加密,把 salt + IV + 密文 拼起来转成 Base64 输出。
- GCM 和 CBC 有什么区别?
- AES-GCM:带认证(AEAD),能同时保证机密性和完整性。如果密文被篡改,解密会直接失败并报错。推荐用它。
AES-CBC:只保证机密性,不检测篡改,需要自己额外加 MAC 才安全。它的存在主要是为了兼容老系统。
- 密钥要多长才安全?
- 本工具不限制长度,但建议至少 12 位,并混合大小写字母、数字、符号。因为 PBKDF2 迭代了 10 万次,即使口令比较短,暴力破解的成本也很高。但口令本身太简单(如"123456")仍然不安全。
- 加密后的数据安全吗?能传到网上吗?
- 加密本身是安全的(AES-256 至今没有被有效破解)。但要注意:
① 密钥必须用另一个渠道传递——如果密钥和密文一起发,等于没加密;
② 别用同一个密钥加密所有东西;
③ 这个页面不保存任何数据,刷新页面后密文就没了,重要数据请先复制保存。