javascript - 由于 KMS 使用 AES,您可以在客户端上使用 AES 加密并在服务器上使用 KMS 加密吗?

标签 javascript cryptography aes encryption-symmetric amazon-kms

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

据我了解,AWS KMS 是建立在 AES 之上的。

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

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

最佳答案

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

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

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

关于javascript - 由于 KMS 使用 AES,您可以在客户端上使用 AES 加密并在服务器上使用 KMS 加密吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46611652/

相关文章:

c - 如何在 armv7 架构中构建 mcrypt 库?

javascript - erb 代码在 javascript <script> 标签中不起作用

javascript - 如何检查 svg 的填充不透明度是否为 0?

javascript - 尝试使用 angularJS 从 JSON 中查找特定对象,并使用 .find() 从 lodash 中查找特定对象

cryptography - DESKey 是否保留无效的奇偶校验位?

javascript - 使用JavaScript的椭圆库验证从golang ecdsa库生成的签名

javascript - 在打印 html 内容中添加外部样式表引用后打印预览为空白

ssl - 用于 secret key 分发的公钥密码学与 Diffie–Hellman

php - 如何让 Ruby AES-256-CBC 和 PHP MCRYPT_RIJNDAEL_128 很好地协同工作

java - 使用 AES 加盐