我有一个客户端数据存储在localStorage中。出于安全原因,我要加密数据。有什么方法可以使用Angularjs加密/解密客户端数据(而非服务器数据)?
$scope.accountObj = { isErrorMsg:false, isReadonly:false, createAccountErr:false };
您可以使用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; }
这里唯一的问题是秘密密钥存储在客户端,这是这种加密的一种破坏逻辑。