[英]Client side encryption: Javascript vs Java Applet vs Adobe Air
我正在考慮在我正在開發的Web項目中實現客戶端加密。 目的是確保數據對用戶是“私有”的,服務器無法解密。
最初,我以為可以在將瀏覽器中的數據發送到服務器之前使用一些Javascript庫對數據進行加密/解密,但是像這樣的文章使我確信,在加密和安全性方面,javascript仍然相當“弱”。
我現在正在考慮使用Java Applets (我的代碼庫是Java,這是很自然的選擇)作為JS代碼和服務器端代碼之間的“橋梁”,但是我可以看到一些陷阱:
- 沒有人(以我的經驗)不再使用Java applet,這可能是有充分原因的
- 用戶需要安裝/升級Java(有時可能是不愉快的操作)
- 平板電腦/智能手機不存在支持(但是可以通過提供本機應用程序“解決”)
- 似乎瀏覽器傾向於阻止Java並使其難以啟用
另一種可能是采用Adobe Air 。 同樣,我可以看到一些麻煩:
- 用戶需要安裝/更新
- 似乎對移動設備有一些支持,但是我想知道它是否可以在移動瀏覽器中工作(我猜是嗎?否)
- 它在那里仍在積極使用/支持嗎? 我注意到Adobe已開源Flex並將其捐贈給Apache,這可能意味着對Flex未來的興趣不足。
最好的解決方案是什么? 是否有其他選擇(也許是Google Dart ?)? 客戶端加密的最佳做法是什么?
javascript真的是圖片嗎?
編輯:我想實施客戶端加密的某些原因(如評論所述):
您可以嘗試Java WebStart,它一旦安裝就可以作為沙盒Java應用程序運行。 對於移動支持,我想那意味着要在應用商店中創建一個應用。 對於Android,業務邏輯和加密相對容易實現; Android和Java API在很大程度上相似。
JavaScript並非完全無法實現。 但是沒有SSL的 JavaScript。 但是,還有很多其他挑戰,例如缺少標准化API的隨機數生成器。 請注意,無論您嘗試哪種解決方案,用戶都必須對您的服務有所信任。 在控制代碼時,您還可以控制該代碼內發生的事情。
不了解Air,否則我會在沒有充分理由的情況下安裝它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.