2017-10-06 89 views
0

我需要加密使用在客戶端的密鑰一些文本字符串,然後解密使用用於在客戶端加密相同的密鑰在服務器端這個加密的字符串。由於KMS使用AES,您可以在客戶端使用AES加密和在服務器上使用KMS加密嗎?

所以,我理解這一點的方式,AWS KMS是建立在AES的頂部。

這樣我就可以使用AES加密的Javascript在客戶端和AWS KMS SDK使用CryptoJS在服務器上解密嗎?

這個問題的原因是我可以在客戶端(瀏覽器)端使用AWS Javascript SDK,但是......我認爲AWS Javascript SDK可能會佔用大量內存。我不想在客戶端初始化AWS config等(不確定是否必須使用AWS KMS JS SDK的單一加密功能來執行此操作)。 CryptoJS看起來更光滑,內存佔用量小。它支持AES。我希望將我的任務降到最低......這裏的主要目標是進行客戶端加密,然後使用對稱加密在服務器上對其進行解密。

回答

1

如果兩個實現匹配,那將是巧合。通常它不匹配,因爲AES只是加密算法,但是那些加密框架使用的不止是這些。因此,所有其他算法必須匹配,也:

  1. 所使用的密鑰導出算法(將產生從所提供的密碼AES密鑰)
  2. 所使用的加密方式。有非常不同的密碼模式(ECB,CBC,OFB,GCM,...),導致完全不同的密文
  3. 所使用的填充(如果需要通過加密模式)

只有當這三個算法在客戶端和服務器端都是一樣的,你可以用一個框架加密並用另一個框架解密。