【问题标题】:How to encrypt/decrypt synchronously using Web Crypto API?如何使用 Web Crypto API 同步加密/解密?
【发布时间】:2022-10-18 08:10:12
【问题描述】:

基本问题: 为了跟上最新的安全趋势,我需要从 AES-CBC 更新到 AES-GCM。目前,我在我的 Angular 应用程序中使用“crypto-js”库进行加密和解密。

网络加密 API:我发现用于执行 AES-GCM 加密/解密的 Web Crypto API 和简单的 HTML,JS POC 可以很好地满足我的要求。

Angular App 中的 Web Crypto API 问题:Web Crypto API 是基于 Promise 的,将新的基于 Promise 的 API 引入现有的稳定应用程序需要进行大量代码更改,我担心这是因为 Angular 应用程序中方法的整个转变可能会影响 Live 应用程序的稳定性并可能引入新的关键问题。

所以,我要求任何人请提出以下任何建议,

  1. 任何能够同步执行 AES-GCM 的加密库
  2. 任何使 Web Crypto API 同步的方法,这需要最少的代码更改

【问题讨论】:

    标签: encryption cryptography aes-gcm


    【解决方案1】:

    我不认为你正在寻找一个灌篮解决方案,但是这里有一些想法。

    1. 有一些库支持 AES-GCM 并且是同步的:

      • aes-256-gcm 包就是其中之一,尽管您可能想研究它的安全性。
      • 如果您使用的是 WebPack 之类的东西,您还可以使用内置的 Node Crypto 库,该库可以填充/打包到浏览器中。看到这个example。从安全的角度来看,这有点复杂,但经过了更好的测试/评估。我最近在 VueJS 应用程序中使用了这种方法,效果很好。
    2. 不幸的是,没有办法使 WebCrypto API 同步。没有等待/阻塞执行事件循环以等待另一个任务完全在 JavaScript 中的概念。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 2018-06-26
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      相关资源
      最近更新 更多