目前我使用的是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代码是在客户端下载的,我如何保护密码以避免轻松地解密脚本?
也许我没有抓住要点,我有点困惑。
发布于 2013-03-05 17:23:57
不幸的是,你没有办法保护你的钥匙。它是JavaScript,应该以某种方式下载,以便在浏览器中执行。您可以混淆密钥,使其变得有点困难,但具有一般知识的人将能够破解它。
我建议您使用用户的密码对内容进行加密。所以每次用户都应该输入密码来解密内容。
不要直接使用用户密码。使用密钥派生函数,如PBKDF2。在crypto-js library中有一个针对PBKDF2的JavaScript实现。
无论如何,你应该知道的是,如果你的应用程序可以在客户端读取它,那么无论你多么努力地保护它,有决心的人也可以读取它。
https://stackoverflow.com/questions/15219892
复制相似问题