如何在 Angular 6 中加密和解密

新手上路,请多包涵

登录响应

{
  code: 200,
  id: 4,
  msg: "success",
  user: "Sourav"
}

我有一个问题,比如我想将 id 和用户作为加密格式存储在本地存储中。我如何使用 Angular 6 来做到这一点?

原文由 lpd 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 795
2 个回答

在我们的一个项目中,我们使用了“crypto-js”库。 http://github.com/brix/crypto-js

 import * as CryptoJS from 'crypto-js';

encryptData(data) {

    try {
      return CryptoJS.AES.encrypt(JSON.stringify(data), this.encryptSecretKey).toString();
    } catch (e) {
      console.log(e);
    }
  }

  decryptData(data) {

    try {
      const bytes = CryptoJS.AES.decrypt(data, this.encryptSecretKey);
      if (bytes.toString()) {
        return JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
      }
      return data;
    } catch (e) {
      console.log(e);
    }
  }

原文由 Suresh Kumar Ariya 发布,翻译遵循 CC BY-SA 4.0 许可协议

在客户端加密的技术解决方案可能是使用一些第三方库。引用这样的库会导致自以为是的答案,这在这里不是很可取。

但是,如果用例是向用户隐藏一些后端数据(当我阅读您的问题时似乎就是这种情况),则加密没有意义,因为密钥要么存储在 JavaScript 代码中,要么通过网络发送.在这两种情况下都不可能混淆。

客户端加密的一些有效用例示例:

  • 允许用户使用他们拥有的密钥来加密事物。
  • 使用一些公钥为拥有相应私钥的系统加密消息

原文由 Guerric P 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题