2016-03-02 96 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链接 –