5

在学习 JavaScript 和 HTML5 的同时,我正在尝试构建一个基本的测验应用程序,该应用程序会询问一些适用于移动网络的多项选择题,也可以作为使用 PhoneGap 的应用程序。当提出问题时,结果会存储在本地。

我希望 PhoneGap 版本允许离线模式,因此必须能够将数据存储在本地。我知道有一个通过 PhoneGap 提供的本地数据库 - 所以我想一个选择是为移动 Web 和本地数据库做客户端/服务器和 PhoneGap。但是,我现在宁愿避免走这条路,因为这意味着我必须管理移动网络和 PhoneGap 版本之间的更多变化。

显然不需要互联网银行级别的安全性,但我需要将结果存储在本地,这些结果不容易读取,但最重要的是可以操作。

我最初尝试使用HTML5 localstorage,但我很快意识到,至少我这样做的方式,我可以明显地看到我存储的所有结果,并且通过使用 Chrome 开发人员工具,可以轻松地单击更改值。

当我走上使用加密的道路时(我正在阅读这篇 StackOverflow 帖子感兴趣),似乎对于这样的事情,我总是必须在代码中的某处定义一个“密钥”以加密数据然后使用相同的密钥来解密它。

由于所有数据都存储在客户端,这意味着我所要做的就是找到这个密钥并针对存储的数据运行它以操纵结果。

4

2 回答 2

1

CryptoJS AES。感谢李

var text = "#rawString#";
var key = CryptoJS.enc.Base64.parse("#base64Key#");
var iv  = CryptoJS.enc.Base64.parse("#base64IV#");

console.log("Initial String:: "+text);

var encrypted = CryptoJS.AES.encrypt(text, key, {iv: iv});
console.log("Encrypted String:: "+encrypted.toString());

var decrypted = CryptoJS.AES.decrypt(encrypted, key, {iv: iv});
console.log("Decrypted String:: "+decrypted.toString(CryptoJS.enc.Utf8));

Plnkr 演示链接

于 2016-11-08T03:55:09.900 回答
-2

base64编码会起作用吗?它内置在浏览器中,看起来是加密的。人们一直在为 cookie 这样做。

资源(Mozilla 特定):

有关非 Mozilla 浏览器的更多信息和链接,请参阅此问题:JSON encode/decode base64 encode/decode in JavaScript

于 2012-11-21T06:48:10.720 回答