0

我需要使用客户端的密钥加密一些文本字符串,然后使用用于客户端加密的相同密钥在服务器端解密这个加密的字符串。

所以按照我的理解,AWS KMS 是建立在 AES 之上的。

那么我可以在客户端上使用CryptoJS和服务器上的 AWS KMS SDK 使用 Javascript 中的 AES 加密来解密它吗?

这个问题的原因是我可以在客户端(浏览器)端使用 AWS Javascript SDK,但是......我认为 AWS Javascript SDK 可能会占用大量内存。而且我也不想在客户端初始化 AWS config 等(不确定我是否必须这样做才能仅使用 AWS KMS JS SDK 中的单一加密功能)。CryptoJS 看起来更流畅,内存占用也更小。它支持AES。我想将我的任务保持在最低限度......因为这里的主要目标是进行客户端加密,然后使用对称加密在服务器上对其进行解密。

4

2 回答 2

1

如果这两个实现匹配,那将是巧合。通常它不会匹配,因为 AES 只是加密算法,但是那些加密框架使用的不止这些。因此,所有其他算法也必须匹配:

  1. 使用的密钥派生算法(根据提供的密码创建 AES 密钥)
  2. 使用的密码模式。有非常不同的密码模式(ECB,CBC,OFB,GCM,...)导致完全不同的密文
  3. 使用的填充(如果密码模式需要)

只有当这三种算法在客户端和服务器端相同时,您才能使用一个框架加密并使用另一个框架解密。

于 2017-10-06T20:48:47.553 回答
1

适用于 JavaScript 的 AWS 加密开发工具包旨在为使用 JavaScript 编写 Web 浏览器应用程序或使用 Node.js 编写 Web 服务器应用程序的开发人员提供客户端加密库。

https://github.com/aws/aws-encryption-sdk-javascript/tree/master/modules/example-browser

于 2020-11-19T09:20:51.997 回答