2016-03-02 66 views
2

我有一個客戶端數據存儲在localStorage中。出於安全原因,我想加密數據。有什麼方法可以使用Angularjs加密/解密客戶端數據(而不是服務器數據)?使用Angularjs加密客戶端本地存儲數據

$scope.accountObj = { 
     isErrorMsg:false, 
     isReadonly:false, 
     createAccountErr:false   
    }; 

回答

3

您可以使用cryptojs庫來加密/解密您的數據。首先,你應該產生一些關鍵在加密過程中使用:

var secretKey = 'your-secret-key'; 

然後,你需要的方法來存儲和賠付數據:

store : function (key, value) { 
    var encryptedData = CryptoJS.AES.encrypt(angular.toJson(value), secretKey).toString(); 
    window.localStorage.setItem(key, encryptedData); 
}, 

get : function (key) { 
    var encryptedData = window.localStorage.getItem(key); 

    if (!_.isNull(encryptedData)) 
     return angular.fromJson(CryptoJS.AES.decrypt(encryptedValue, secretKey).toString(CryptoJS.enc.Utf8)); 

    return null; 
} 

這裏唯一的問題是,密鑰存儲在客戶端這是一種破壞這種加密的邏輯。

+0

你能PLZ添加一個完整的工作代碼plunkr鏈接 –