我有一个Java应用程序的公司,将被激活的付费许可证。
应用程序将使用公钥解密使用私钥加密的许可证文件。(和/或,应用程序将对某些数据进行加密,并将其提交给web服务,在该服务中,它将被服务器上的私钥解密)。
无论哪种方式,应用程序都需要有公钥。
我正在考虑在Java类中对公钥文件的内容进行硬编码并从中读取它。另外,我使用的是一个混淆器(Allatori),它可以进行字符串加密,这样硬编码的公钥字符串就会被混淆,所以使用反编译器很难读取,所以我认为这是一个优势。
但是,为什么我不应该对公钥进行硬编码,而是将其作为类路径中的文件传递,这有什么好的理由吗?
请给我一些建议,因为我是新手,可能需要一些建议,谢谢!
发布于 2020-07-03 03:42:27
感谢这些评论中的大量信息,我对我的问题得到了很好的回答,并从中学到了很多东西。
最初的问题是,“我为什么不对公钥进行硬编码并将其作为类路径中的文件传递,这有什么好的理由吗?”
答案是..。是的,我们有充分的理由不对Java类中的公钥进行硬编码。也就是说,公钥应该被看作是一个资源,与Java类分开,所以从编码约定的角度来看,它可能不是一个好形式。另外,保持公钥分离意味着您可以在以后更新公钥,而不必重新编译和交付新构建的Java代码。
尽管如此,在Java类中包含公钥在技术上是合理的,而且由于它符合我的目的,所以我确实采用了这种方法。(具体来说,我喜欢混淆将公钥隐藏为Java代码中的加密字符串,只是为了在我的许可解决方案周围再添加一层模糊信息;这只是让普通黑客恼火的又一个障碍。)
谢谢大家的帮助!
https://stackoverflow.com/questions/62624987
复制相似问题