小编典典

使用Angularjs加密客户端本地存储数据

angularjs

我有一个客户端数据存储在localStorage中。出于安全原因,我要加密数据。有什么方法可以使用Angularjs加密/解密客户端数据(而非服务器数据)?

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

阅读 330

收藏
2020-07-04

共1个答案

小编典典

您可以使用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;
}

这里唯一的问题是秘密密钥存储在客户端,这是这种加密的一种破坏逻辑。

2020-07-04