Javascript 桌面应用程序加密与使用客户端加密的Web应用程序

Javascript 桌面应用程序加密与使用客户端加密的Web应用程序,javascript,java,web-applications,cryptography,desktop-application,Javascript,Java,Web Applications,Cryptography,Desktop Application,我需要制定一个解决方案,在客户端使用服务器进行身份验证/访问控制和加密 第一个选项是制作一个与服务器通信并负责加密的java/fx桌面应用程序 第二种选择是使用客户端javascript加密技术创建web应用程序 注: 使用混合加密,已经为用户生成了非对称密钥,因此使用java/js只生成对称密钥 将使用HTTPS 那么,哪种方法更安全/高效?我是否应该对解决方案进行任何更改?这两种解决方案的问题在于,您需要以某种方式信任代码。这有时在客户端应用程序上更容易实现,因为它只下载一次(带有内置更

我需要制定一个解决方案,在客户端使用服务器进行身份验证/访问控制和加密

第一个选项是制作一个与服务器通信并负责加密的java/fx桌面应用程序

第二种选择是使用客户端javascript加密技术创建web应用程序

注:

  • 使用混合加密,已经为用户生成了非对称密钥,因此使用java/js只生成对称密钥

  • 将使用HTTPS


那么,哪种方法更安全/高效?我是否应该对解决方案进行任何更改?

这两种解决方案的问题在于,您需要以某种方式信任代码。这有时在客户端应用程序上更容易实现,因为它只下载一次(带有内置更新或由repo提供的更新),并且您可以使用附加控件,如签名下载和/或受信任的软件存储库。目前JS可以通过操作系统访问随机数生成器,因此在这种意义上可能没有太大区别,特别是如果您足够信任TLS连接-确保您连接到正确的服务器。目前,您将很难让客户端安装Java SE,尤其是因为他们可能甚至不能。在我看来,JavaSE已经输掉了桌面应用程序的游戏。这是一个耻辱,因为它在很多方面比.NET和/或本地C++更好。尽管如此,感知到的不安全感、恼人的更新机制、糟糕的用户界面以及其他一切都让它死掉了。对于一个普通的用户应用程序,不要去那里(注意我是Java的传播者,所以这种批评对我来说并不自然)。好吧,如果没有区别的话,那就归结为个人偏好。我不知道专家的意见,但我自己也是java的粉丝,对于UI,javaFX提供了很好的结果,而且我在安装JavaSE方面没有问题,所以这是个人项目的一部分。非常感谢您的回答Java在支持硬件加速方面可能会更快更好。您还可以更好地抵御侧通道攻击,尽管这很难量化。这两种解决方案的问题是您需要以某种方式信任代码。这有时在客户端应用程序上更容易实现,因为它只下载一次(带有内置更新或由repo提供的更新),并且您可以使用附加控件,如签名下载和/或受信任的软件存储库。目前JS可以通过操作系统访问随机数生成器,因此在这种意义上可能没有太大区别,特别是如果您足够信任TLS连接-确保您连接到正确的服务器。目前,您将很难让客户端安装Java SE,尤其是因为他们可能甚至不能。在我看来,JavaSE已经输掉了桌面应用程序的游戏。这是一个耻辱,因为它在很多方面比.NET和/或本地C++更好。尽管如此,感知到的不安全感、恼人的更新机制、糟糕的用户界面以及其他一切都让它死掉了。对于一个普通的用户应用程序,不要去那里(注意我是Java的传播者,所以这种批评对我来说并不自然)。好吧,如果没有区别的话,那就归结为个人偏好。我不知道专家的意见,但我自己也是java的粉丝,对于UI,javaFX提供了很好的结果,而且我在安装JavaSE方面没有问题,所以这是个人项目的一部分。非常感谢您的回答Java在支持硬件加速方面可能会更快更好。您还可以更好地抵御侧通道攻击,尽管这很难量化。