我有一個應用程序使用HTML5緩存「離線模式」。當應用程序處於離線狀態時,數據通過javascript存儲在localStorage中,以便在應用程序返回「在線」時發送到服務器。我想通過一種加密方式運行一些數據,然後將其粘貼到localStorage中,只能在服務器上解密。JavaScript到紅寶石加密
我在想公共/私人鑰匙會是這樣做的。這是一個合理的方式去處理事情嗎?有沒有好的JavaScript庫來處理客戶端的這種事情?有沒有好的ruby/rails庫/寶石來處理這個服務器端?
我有一個應用程序使用HTML5緩存「離線模式」。當應用程序處於離線狀態時,數據通過javascript存儲在localStorage中,以便在應用程序返回「在線」時發送到服務器。我想通過一種加密方式運行一些數據,然後將其粘貼到localStorage中,只能在服務器上解密。JavaScript到紅寶石加密
我在想公共/私人鑰匙會是這樣做的。這是一個合理的方式去處理事情嗎?有沒有好的JavaScript庫來處理客戶端的這種事情?有沒有好的ruby/rails庫/寶石來處理這個服務器端?
如果您只想對localStorage中的數據進行加密,則可以使用公鑰加密。不要在JS中生成密鑰,在服務器端進行操作,並將公鑰與頁面一起發送。不幸的是,我不知道任何經過良好測試並在Javascript中維護加密庫。
對於您所瞄準的安全級別(只是一小層以防止用戶讀取數據),您可以選擇任何您想要的實現。 在服務器端,您可以將OpenSSL gem與OpenSSL :: PKey :: RSA類一起使用。
對於閱讀此內容的其他人:請勿使用Javascript加密,it's bad!
爲了處理這個客戶端,有用於jQuery的handleStorage插件,它非常易於使用,但是是GPL。如果由於授權問題而無法使用該功能,則可以將jStorage jQuery插件與blowfish jQuery插件結合使用。
您能否介紹一下更多?你爲什麼需要加密?如果是爲了防止用戶讀取數據,他可以通過在運行時編輯JS來達到這一目的。此外,如果用戶擁有公鑰,則用戶可以將他想要的任何數據存儲到加密存儲中(因爲它沒有簽名,所以不能相信這個加密內容)。 –
js被混淆到了我們並不真正擔心用戶操縱它的地步(我知道有人真的很熱心,但是這個級別的保護足以滿足項目的範圍)。大部分只是想爲localStorage添加一層保護,以防止它被輕鬆讀取,同時仍允許服務器以用戶輸入的值接收。 –