1

用例:在线时,用户启动提示输入用户名/密码的Ionic应用程序。根据服务器检查证书并允许用户登录。此外,加密的密码存储在本地(ipad)。 脱机时,不是根据服务器进行检查,而是根据本地存储的加密密码验证凭据。离子 - 在本地存储器中存储加密值

什么在工作 能够使用Ionic中的crypto-js库来加密密码。

var encryptedMessage = CryptoJS.AES.encrypt(password, secretkey); 

什么是不工作 现在,我想使用的角度本地存储库将其保存在本地存储。

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) 

相同的代码工作正常,如果我传递一个unecrypted字符串,而不是加密的密码。所以,它与加密数据有关。

如何将加密数据存储在本地存储中?

回答

1

问题是由使用的ToString()方法

CryptoJS.AES.encrypt(password, secretkey).toString() 

这样我才得以保存String,然后拿回来和解密它解决。