我有一些不平凡的计算代码,需要应用于已经下载到浏览器DOM中的数据,并从用户交互中获取.我不希望揭露这段代码.我想知道:
写一个webservice并通过websocket或http与浏览器通信.权衡是交互的速度(从光滑到差),交通成本更高.
编写一个封装了页面内部逻辑的Java Applet(签名隐藏代码),让JavaScript与Java API进行交互.我在别处看到,Java和JS引擎可能会在某些情况下死机.但是,由于我只是计算,这是非问题.也许,在多核心机器上,我可以使用更多的线程来分解我的工作.
>用JavaScript写.但JavaScript很难测试,而且都在公众场合.
Q& A,如usability of Java applets in the web和其他几个也是沮丧.
我的问题是:Java applet是死技术.现在甚至连这个话题都没有Q& A!另外,Java可能并不总是与所有浏览器(桌面,平板电脑或手机)捆绑在一起?
是否有其他更好的方法来完成相同的隐藏代码,利用客户端cpu / ram,最小化数据流量.
网页在Javascript / html5 / css上.服务器只有JSON / XML.数据包为10-20KB,频繁更新.计算是昂贵的和客户端特定的,所以我真的想使用客户端来做这些.
非常感谢.
解决方法
我认为小程序的最大缺点是它假定您在客户机上安装了一个JRE.这真的是一个可行的假设吗?
当然,您也可以提供下载和安装JRE,但是为什么要做这些只是为了进行一些计算?
另一个问题我会问自己,你的客户可以是手机,平板电脑等吗?如果是这样,也许Java脚本是更好的选择.
还有另外5分:)你提到’打开眼睛java脚本’
您应该明白,保护计算代码的唯一真正方法是将计算放在服务器上.我的意思是,即使你有一个编译的二进制代码,java的汇编对于熟练的攻击者来说很容易理解.和你提到的混淆(它的混淆,而不是签名jar)使它稍微更难,但仍然不是不可能的.
我唯一关心的是,如果您有很多客户端同时运行计算,并将计算负担放在您的服务器上,最终可能会崩溃.
只是我的想法,希望这将帮助你选择最好的方向在这里…