我知道互联网上有很多类似的问题,但没有一个可以解决我的疑问。请原谅我关于我的项目。我有一个java文件或程序,它接受一个字符串,加密它,然后将加密的字符串返回给我。
我想在网页或客户端包含或保留此java文件(.jar文件)。现在我知道我们可以在服务器端上传这个java程序,然后轻松地与它进行通信,而不是在客户端调用它,这是大多数人认为是不好的做法。
但是我在客户端保留这个jar文件的目的是,如果我们检查元素,可以很容易地看到加密的JavaScript代码,因此与它相比.jar文件更安全,无法看到底层加密代码,如果万一有网络丢失,然后再次输入整个字符串并再次从服务器加密,我想在这种情况下保存该字符串,从客户端的jar文件加密,以便一旦网络问题解决了我不需要再次重新输入整个消息然后我可以直接将消息或字符串发送到另一端或网络上的其他用户。
因此,我需要有关如何在网页或客户端存储我的.jar文件以及如何使用JavaScript从.jar文件调用方法的帮助。我知道applet已被弃用,chrome不支持java。我也在互联网上看过一些像https://docs.oracle.com/javase/tutorial/deployment/applet/invokingAppletMethodsFromJavaScript.html这样的例子,但它对我不起作用。
所以我正在寻找一些理想的方法,通过它我可以首先在客户端包含或上传.jar文件,然后我可以使用JavaScript从.jar文件调用java方法。请帮忙......我的认真要求......!
答案 0 :(得分:0)
如果我们检查元素
,可以很容易地看到加密的JavaScript代码
我假设您的意思是嵌入式Javascript。因为您可以引用位于Web服务器上的外部JS文件,而不是客户端计算机。
浏览器可能会在本地某处缓存您的脚本文件,但如果有人费心去挖掘它,他也可以反编译您的jar文件,这样更容易。
答案 1 :(得分:0)
答案 2 :(得分:0)
你似乎有很多误解......这里有一些事实供你考虑:
在客户端运行的JAR文件(作为应用程序,WebStart或applet)不安全。如果它在我的电脑上运行,我可以做任何我想做的事情。我可以下载JAR文件并对其进行反编译。在这方面,它并不比JavaScript更好,它只需要更多的努力和知识。
为了保护客户端和服务器之间的数据,您只需使用HTTPS并将数据从网页发布到您的服务器。
如果客户端正在为您加密数据,那么加密过程应该没有什么可隐瞒的。客户端生成会话密钥以加密数据,然后通过服务器的公钥包装该会话密钥。然后客户端将加密数据和包装的会话密钥发送到您的服务器。阅读有关公钥基础结构(PKI)的更多信息:https://en.wikipedia.org/wiki/Public_key_infrastructure
默认情况下,Java applet / WebStart未被授予对磁盘的访问权限。您必须对其进行签名以将数据写入磁盘,并且用户/安全策略仍然可以拒绝授予这些访问权限。 (Applet - Unable to write file)
正如您所知,由于浏览器拒绝插件,applet / WebStart正在消亡。有网络密码学API(它不成熟,没有硬件支持),你可以试试。 https://www.w3.org/TR/WebCryptoAPI/