我有一个客户端数据存储在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;
- }
这里唯一的问题是密钥存储在客户端,这是这种加密的破坏逻辑.