您是否可以在服务器上使用AES加密,在服务器上使用KMS加密,因为KMS使用AES?

时间:2017-10-06 18:12:20

标签: javascript cryptography aes encryption-symmetric aws-kms

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

因此,我理解这一点,AWS KMS建立在AES之上。

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

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

2 个答案:

答案 0 :(得分:1)

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

  1. 使用的密钥派生算法(从提供的密码创建AES密钥)
  2. 使用的密码模式。有非常不同的密码模式(ECB,CBC,OFB,GCM,...)导致完全不同的密文
  3. 使用的填充(如果密码模式需要)
  4. 只有在客户端和服务器端这三种算法相同时,您才能使用一个框架进行加密并使用另一个框架进行解密。

答案 1 :(得分:1)

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

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