2015-10-19 83 views
0

我是python和websocket程序員中的新成員。通過Autobahn發送RSA密鑰

我想通過websocket發送使用RSA密鑰(使用Python)加密的數據到雲中的服務器(使用nodeJs)。爲了解密這些數據,我需要這個密鑰,對吧? 我如何將RSA發送到服務器並使用該密鑰進行解密?

Thankyou

+1

你不會在任何地方一般發私(解密)密鑰。相反,您可以將公鑰(加密)密鑰嵌入到客戶端中。所以密鑰對應該在服務器上生成。 –

+0

你是什麼意思「將公鑰嵌入客戶端」?你能舉個例子嗎? –

+0

我的意思是您應該生成密鑰對,以某種方式對公鑰進行編碼並將其放入客戶端源代碼中。然後你可以加載客戶端併爲服務器加密一些東西。 –

回答

0

您還沒有提供關於如何加密數據的信息。但是你不應該通過網絡發送私鑰。決不。這樣做與鎖定房屋一樣安全,但將鑰匙留在鑰匙孔中。如果你已經做過一次,就把鑰匙扔掉,然後生成一個新鑰匙。

RSA的優勢來自任何持有公鑰的人都可以加密數據,但只有持有私鑰的人才能解密。把它想象成一個老視頻商店的迴歸盒:任何客戶都可以通過這個洞將視頻放入其中,但只有店員可以從中獲取視頻。

你想要做的是:

  1. 在服務器上生成的密鑰

  2. 客戶端調用服務器和搶公共關鍵

  3. 客戶端加密使用數據檢索public key

  4. 客戶端發送加密數據到服務器。

  5. 服務器使用解密的私人關鍵

+1

我通過將公鑰添加到客戶端的代碼中來結合1和2,以便客戶端不必另外請求公鑰。 –