簡體   English   中英

尋求有關 JavaScript RSA 加密的建議

[英]Looking for advice on JavaScript RSA encryption

我需要加密用戶在客戶端表單上輸入的數據。 我的環境沒有 ssl 加密,但我發現在我的情況下,我可以通過 RSA 加密獲得類似的結果。 公鑰將在客戶端使用,私鑰的所有者稍后將能夠檢索和解密數據。

在我走這條路之前,我想確保我沒有忽視任何關鍵問題。 所以這里有幾個問題:

  • 你能推薦做 RSA 加密的 JavaScript 庫嗎?
  • 什么保證它們是可靠的?
  • 這種技術的缺點是什么? 例如,如果用戶關閉瀏覽器太快會丟失消息?

一般來說,我會對有關這種 JavaScript RSA 加密技術的任何建議感興趣。

更新:到目前為止,我發現的唯一 RSA JavaScript 是在此頁面上: http : //www.ohdave.com/rsa/對此有任何反饋嗎?

另外,如果您有任何推薦,我可以使用 RSA 以外的加密。 我的限制是要有一個 100% 的 JavaScript 解決方案。

這是可能的,但是應該指出,這絕不是 TLS 的替代品——主要是因為像這樣的技術在客戶端和服務器之間沒有提供可強制執行的信任或身份驗證; 您的腳本無法驗證其中嵌入的公鑰是您的公鑰,任何可以進入您和您的客戶之間的人都可以替換他們自己的。

https://sourceforge.net/projects/pidcrypt/似乎越來越受歡迎。 我正在評估它以在我們的項目中使用。 如果我設法使用這個庫,將發布更新。

看看asmcrypto.js — 已經實現了很多加密算法,包括 RSA,而且它真的非常

順便說一句,我是一名作者,很高興得到一些反饋並回答您的問題(如果有的話)。

如果您的 javascript 環境是安全的(例如 https)並且您不需要支持舊瀏覽器版本,可以使用Subtle.Crypto來創建良好的安全模型。 您需要很好地了解您在做什么以及如何在您的環境中實現加密、簽名、密鑰存儲等。 自己動手有很多陷阱。

一個好的起點是考慮是否需要分發單獨的 AES 密鑰以進行快速和安全的加密。 如果是這樣,那么您可能希望使用 RSA 來加密和傳輸單個 AES 密鑰,然后使用 AES 進行大量加密。 記住要簽字。 在許多情況下,只需對有效負載進行簽名,以便驗證其完好無損就足夠了。 可能沒有必要隱藏靜態或傳輸中的數據。

https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto

簡單的輕量級 javascript 庫 crypto4js 已經實現了 RSA 加密。 你可以使用它https://github.com/atul19971/crypto4js

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM