在我學習JavaScript和HTML5的過程中,我正在嘗試構建一個基本測驗應用程序,要求提供可在移動網絡上使用的一些多項選擇題,以及使用PhoneGap的應用程序。隨着問題的提出,結果會存儲在本地。使用JavaScript加密本地存儲的數據
我希望PhoneGap的版本,允許離線模式,所以對數據進行本地存儲的能力是必須。我知道有一個通過PhoneGap提供的本地數據庫 - 所以我想一個選擇是使用PhoneGap爲移動網絡和本地數據庫執行客戶端/服務器。不過,我寧願避免現在就走這條路,因爲這意味着我必須在移動網絡和PhoneGap版本之間管理更多的變體。
顯然不需要網絡銀行級別的安全性,但我需要將結果存儲在本地,但無法輕易讀取,但最重要的是操縱。
我最初嘗試使用HTML5的localStorage,但我很快就意識到,至少我是這樣做的方式,我可以明顯地看到所有我被存儲和通過使用Chrome開發者工具的結果,可以很容易地只需點擊改變價值。
當我走下使用加密的路徑時(I was reading this StackOverflow post with interest),似乎對於這樣的事情,我總是必須在代碼的某個地方定義一個'密鑰',以加密數據,然後使用相同的密鑰解密它。因爲所有的數據都存儲在客戶端,這意味着我所需要做的就是找到這個關鍵字,並根據存儲的數據運行它來處理結果。
您試圖完全緩解什麼威脅?我不能想象任何事情會減輕非技術人員的偶然檢查。我很想被證明是錯誤的。 –
這個練習實際上是關於我學習如何構建HTML5/JS移動Web應用程序,而不是我在應用程序商店中放置的東西。我想我有一些模糊的想法,儘管最終允許在線同步分數,可能是以排行榜的方式與其他玩家進行同步。儘管如此,我仍然想爲遊戲提供一個離線選項,因此也是離線存儲的原因。我知道有人會在離線情況下使用移動網站,但是他們可能會使用該應用程序,我不希望從兩個不同的方式構建每個版本。 – fakeguybrushthreepwood
事實上,人們可以通過編輯webstorage進入瀏覽器並在瀏覽器中更改其分數,這似乎不是一個好策略。爲了說清楚 - 他們可以查看存儲在webstorage中的「記分卡」並操作這些值。即使它使用某種形式的加密我已經發現 - 他們仍然可以按照該字符串操縱它。 – fakeguybrushthreepwood