1

我有一個場景,我必須在服務器端加密(使用java)和解密客戶端(使用任何JavaScript庫)使用非對稱密鑰加密相同的數據,因爲我們想從服務器端發送一些敏感信息.so我這裏的問題是 -是否有可能在服務器端加密並在客戶端解密(使用JavaScript)?

  1. 真的有可能嗎?如果是的話如何?
  2. 如果不是?爲什麼?

如果真的有可能,請提供任何鏈接或任何示例開始,請提供替代品只有當它不可能(我知道我們有SSL,但請保留這一點)。

任何幫助,非常感謝。

+1

是在Web瀏覽器的JavaScript正在運行或者是它像一個Node.js的圖書館嗎?我得到的是:如果您必須將JavaScript庫發送給另一方(Web瀏覽器),那麼您必須使用SSL來防止中間人攻擊(man-in-the-middle)。但是,如果它是Node.js並且最終'用戶'已經擁有JavaScript代碼(並且您可以驗證它的來源),那麼您可能會找到解決方案。 – Randy

+0

請參閱#1答案從這裏獲取更多信息:http://stackoverflow.com/questions/6116883/are-there-any-asymmetric-encryption-options-for-javascript – Randy

回答

2

我要繼續前進,留下一個答案:

這是不可能的從人在這方面的中間人沒有SSL攻擊保護。如果有人發起這樣的攻擊,他們可以簡單地修改JavaScript以刪除您正在使用的任何加密 - 或者僅在解密後使用該數據。

簡而言之:是的,可以使用JavaScript對數據進行加密和解密,但是它並沒有真正的保護。

看到這個答案的其他信息:https://stackoverflow.com/a/6121236/2155492

+0

謝謝,但我想你是在談論在客戶端加密和在服務器端解密,我在這裏說的是相反的。 – Novice

+1

你需要加密或解密的方向並不重要。通過使用不安全的HTTP,您可以讓某人坐在服務器和客戶端之間的中間位置。他們可以改變你的JavaScript做任何他們想要的。他們可以簡單地添加一個函數,在JavaScript解密加密的消息後,將該數據發送到服務器。 – Randy

1

在我看來,這是可能的,但毫無意義的

  1. 你必須與加密數據
  2. 你的JavaScript代碼是可見的發送鍵。

如果您動態生成密鑰並將它們綁定到會話,以便使用它們的每個人都擁有唯一的密鑰,但我認爲它仍不是很安全。

+0

感謝您的答覆。你能給我提供任何描述過程如何做的鏈接,意味着生成獨特的(我認爲是私人的)鑰匙並將它們綁定到一個會話? – Novice

相關問題