我有一个Java应用程序,我需要保护文本文件中的内容,然后才能将其导出到jar文件中。所以我使用“javax.crypto.Cipher”提供的BlowFish算法对文件进行编码。我在飞行中解密它。
当我从工作站运行应用程序时,一切正常。但是,一旦我将应用程序导出为jar文件并运行它。它会在尝试解密受保护文本文件内容的代码部分中引发错误。错误是:
javax.crypto.BadPaddingException:给定最终块未正确填充
export-jar-file-process是否会改变所包含文本文件的内容,例如:它的编码?
答案 0 :(得分:0)
Jar命令和java.util API生成zip和& jar不处理编码 - 他们将文件视为二进制文件。我会看看你的构建过程,看看你是否有一些属性替换过滤器等。我已经看到Maven和ANT弄乱了带有文本文件名的二进制文件......顺便说一下,你的编码文件是否零售.txt扩展名?