使用斯坦福Javascript加密库了解JavaScript密码学

目前,我使用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以避免轻易解密脚本?

也许我错过了我有点困惑的观点.

解决方法:

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

我建议您执行的操作是可以使用用户密码对内容进行加密.因此,每次用户应输入密码来解密内容.

不要照原样使用用户密码.使用密钥派生函数,例如PBKDF2.crypto-js library中有一个PBKDF2的JavaScript实现.

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

上一篇:C#-如何在.Net中加密AES / ECB / 128消息?


下一篇:不依赖DLP或素数分解的Java TLS