用例:在线时,用户启动Ionic应用程序,提示输入用户名/密码。将根据服务器检查凭据,并允许用户登录。此外,加密的密码存储在本地(ipad)。脱机时,无需对照服务器进行检查,而应根据本地存储的加密密码来验证凭据。
工作原理可以在Ionic中使用crypto-js库对密码进行加密。
var encryptedMessage = CryptoJS.AES.encrypt(password, secretkey);
无法正常工作现在,我正在尝试使用angular-local-storage库将其保存在本地存储中。
localStorageService.set('pwdkey', encryptedMessage );
它给了我下面的错误
TypeError: Converting circular structure to JSON
at Object.stringify (native)
at toJson (http://localhost:8100/lib/ionic/js/ionic.bundle.js:14637:15)
at Object.addToLocalStorage (http://localhost:8100/lib/angular-local-storage/dist/angular-local-storage.js:158:19)
at encryptAndStore (http://localhost:8100/js/controllers.js:550:27)
如果我传递未加密的字符串而不是加密的密码,则相同的代码也可以正常工作。因此,它与加密数据有关。
如何将加密数据存储在本地存储中?
通过使用.toString()方法解决了该问题
CryptoJS.AES.encrypt(password, secretkey).toString()
这样,我能够保存字符串,然后将其取回并解密。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句