[英]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.