当我们重新导入时,jar 文件是不是会更改编码文本文件的内容?
Posted
技术标签:
【中文标题】当我们重新导入时,jar 文件是不是会更改编码文本文件的内容?【英文标题】:Does jar file change the contents of an encoded text file, when we reimport it?当我们重新导入时,jar 文件是否会更改编码文本文件的内容? 【发布时间】:2011-08-25 01:20:05 【问题描述】:我有一个 Java 应用程序,我需要在将文本文件中的内容导出到 jar 文件中之前对其进行保护。所以我使用“javax.crypto.Cipher”提供的 BlowFish 算法对文件进行编码。我在飞行中解密它。
当我从我的工作站运行应用程序时,一切正常。但是一旦我将应用程序导出为 jar 文件并运行它。它在尝试解密受保护文本文件内容的代码部分引发错误。错误是:
javax.crypto.BadPaddingException:给定最终块未正确填充
export-jar-file-process 是否会改变包含的文本文件的内容,例如是编码吗?
【问题讨论】:
"..在将文本文件中的内容导出到 jar 文件中之前对其进行保护。"如果您的代码可以解密,并且您的代码处于黑客的控制之下,那么黑客也可以解密它。 所以我认为我的措辞应该更彻底。它不是非常敏感,它是我们希望具有“足够好”安全性的灵活性的情况之一。我们将只通过 .jar 公开类文件。此外,这个文本文件实际上是一个查找表,只有通过我们的 API 才能查找数据。 【参考方案1】:用于生成 zip 和 jar 的 Jar 命令和 java.util API 不处理编码——它们将文件视为二进制文件。我会查看您的构建过程,看看您是否有一些属性替换过滤器等。我已经看到 Maven 和 ANT 将二进制文件与文本文件名混淆...顺便说一句,您的编码文件是否零售 .txt 扩展名?
【讨论】:
是的,它确实有一个 .txt 文件扩展名。以上是关于当我们重新导入时,jar 文件是不是会更改编码文本文件的内容?的主要内容,如果未能解决你的问题,请参考以下文章