3

目前我使用的是Stanford Javascript Crypto Library,我需要先加密一些内容,然后再将其保存在 html5 和 JS 的本地存储中。

目前我使用这样的代码。

usernameEnc = sjcl.encrypt("password", username);
passwordEnc = sjcl.encrypt("password", password);
localStorage.username = usernameEnc;
localStorage.password = passwordEnc;  

我能够正确加密。由于我正在使用 JS 构建 HTML5 应用程序并且 JS 代码是在客户端下载的,如何保护 PASSWORD 以避免轻易解密脚本?

也许我错过了我有点困惑的点。

4

1 回答 1

4

不幸的是,您无法保护您的密钥。它是 JavaScript,应该以某种方式下载以在浏览器中执行。您可以混淆密钥以使其有点困难,但具有一般知识的人将能够破解它。

我建议您可以使用用户密码加密内容。所以每次用户都应该输入密码来解密内容。

不要按原样使用用户密码。使用密钥派生函数,例如PBKDF2crypto-js 库中有一个 PBKDF2 的 JavaScript 实现。

无论如何,您应该知道的是,如果您的应用程序可以在客户端读取它,那么无论您如何努力保护它,有人确定也可以读取它。

于 2013-03-05T09:23:56.800 回答