如何修改jar包中的properties文件?

darkshaddock 2014-10-10 03:56:09
是这样的,楼主需要修改一个jar包中的配置文件,按照传统的解压修改再压缩之后报SHA digest error,初步认为是在jar包中的META-INF文件夹中有mainfest.mf,内容是文件和SHA1值,比如
Name:xxx(jar包中的class,properties等文件)
SHA-1-Digest: 5u5bLTDWDEUQ0CPq/AUnlFidG8I=
Digest-Algorithms: SHA-1, MD5
MD5-Digest: qDp6r7AurcsxRk6oivFi9w==
可能我修改了文件但是没有更新mainfest文件中的SHA值,
META-INF下还有一些RSA和sf文件,楼主删除了这些文件,把mainfest中的sha全部删除,jar包就没用了。
请问大家怎么修改properties文件再打包才能避免上述错误,或者有其他办法?
顺便能解释下META-INF下这些文件各自的用处最好,谢谢~
...全文
4269 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkshaddock 2014-10-14
  • 打赏
  • 举报
回复
或者,这个问题可以换成如何修改带有数字签名的jar包?jar包数字签名有什么作用?
darkshaddock 2014-10-14
  • 打赏
  • 举报
回复
引用 15 楼 humanity 的回复:
反正篡改了文件就不能再保留签名相关的文件内容了,删除掉它们重新打包就可以了。 另外,你可以反编译代码观察它取参数的方式是否唯一,如果还有其它与优先级相关的途径,我们可以改动优先级比它高的设置,比如,如果它读取这个properties 当默认值,同时还检测是否有命令行的 -D... 参数的话(System.getProperty("..."))我们就不必去改动它的 properties 文件啦。
这个jar包是一个web应用的部分,我试过删除签名文件重新打包,打包之后整个应用都无法访问了。
humanity 2014-10-14
  • 打赏
  • 举报
回复
反正篡改了文件就不能再保留签名相关的文件内容了,删除掉它们重新打包就可以了。 另外,你可以反编译代码观察它取参数的方式是否唯一,如果还有其它与优先级相关的途径,我们可以改动优先级比它高的设置,比如,如果它读取这个properties 当默认值,同时还检测是否有命令行的 -D... 参数的话(System.getProperty("..."))我们就不必去改动它的 properties 文件啦。
Inhibitory 2014-10-14
  • 打赏
  • 举报
回复
java.lang.SecurityException: SHA1 digest error for 就是为了防止Jar包被修改的。
EverWHL 2014-10-14
  • 打赏
  • 举报
回复
引用 16 楼 darkshaddock 的回复:
[quote=引用 15 楼 humanity 的回复:] 反正篡改了文件就不能再保留签名相关的文件内容了,删除掉它们重新打包就可以了。 另外,你可以反编译代码观察它取参数的方式是否唯一,如果还有其它与优先级相关的途径,我们可以改动优先级比它高的设置,比如,如果它读取这个properties 当默认值,同时还检测是否有命令行的 -D... 参数的话(System.getProperty("..."))我们就不必去改动它的 properties 文件啦。
这个jar包是一个web应用的部分,我试过删除签名文件重新打包,打包之后整个应用都无法访问了。[/quote] 既然无法用了,证明肯定还是要签名的,卤煮可以重新进行签名再试试
引用 17 楼 darkshaddock 的回复:
或者,这个问题可以换成如何修改带有数字签名的jar包?jar包数字签名有什么作用?
如何给jar包数字签名 这个要保证你彻底删除原来的签名相关文件 再说说这个签名的作用 1.jar包数字签名可以防止恶意篡改 2.为了使Applet或者Java Web Start程序能够访问客户端本地资源,需要对Applet或者JWS程序jar包进行数字签名,之后客户端打开Applet或者JWS程序的时候会提示是否允许该程序访问本地资源,用户如果要用你的程序,当然只能选择OK了。这样你的程序就能按照某种访问权限来访问客户机的本地资源了。
darkshaddock 2014-10-13
  • 打赏
  • 举报
回复
引用 12 楼 EverWHL 的回复:
你这个jar应该是否已经签过名了吧 如果想改完重新打jar包 就得删除原来的签名文件,重新创建Jar包和签名
谢谢,你的回答很有帮助。 如果我想重新给jar包签名的话要怎么做呢?会不会重新签名之后通不过验证?对数字签名了解的比较少,希望能有一些更具体的建议,3Q。
darkshaddock 2014-10-13
  • 打赏
  • 举报
回复
引用 11 楼 oh_Maxy 的回复:
[quote=引用 10 楼 darkshaddock 的回复:] [quote=引用 8 楼 oh_Maxy 的回复:] [quote=引用 4 楼 darkshaddock 的回复:] [quote=引用 2 楼 oh_Maxy 的回复:] 是要通过代码实现jar包内配置文件的修改么?这样似乎不行的。。 如果是自定义的配置文件,可以考虑不要放到jar包里,直接放到工程目录下或者工程目录下的某个文件夹里。
不管什么方式,能实现就好,jar包是第三方的,它将一些配置文件放在包路径下一起打包了。 我现在的需求是更改其中的部分配置,我通过解压jar包可以修改,修改完之后用zip压缩,再修改文件格式为jar,但使用时会报 java.lang.SecurityException: SHA1 digest error for(我修改过的配置文件路径)[/quote] 如果啥方法都行的话,可以吧这个jar下载到本地,用WinRAR打开,手动改了那个配置。[/quote] 额,你看我的描述,我差不多是这么干的,但是再部署这个jar包就报错了。错误内容是: java.lang.SecurityException: SHA1 digest error for(我修改过的配置文件路径)[/quote] 嗯,那,为啥要改给定jar的配置?能否自己定义一下,尽量绕开给定的jar,避免冲突呢? (主要是别人的东西,不知道配置会在哪些地方用到,所以改了它的配置可能就影响jar包功能了。。)[/quote] 是的,这个jar包封装了一些国际化配置文件,我想修改其中的部分配置。jar包不开源的。
oh_Maxy 2014-10-11
  • 打赏
  • 举报
回复
引用 10 楼 darkshaddock 的回复:
[quote=引用 8 楼 oh_Maxy 的回复:] [quote=引用 4 楼 darkshaddock 的回复:] [quote=引用 2 楼 oh_Maxy 的回复:] 是要通过代码实现jar包内配置文件的修改么?这样似乎不行的。。 如果是自定义的配置文件,可以考虑不要放到jar包里,直接放到工程目录下或者工程目录下的某个文件夹里。
不管什么方式,能实现就好,jar包是第三方的,它将一些配置文件放在包路径下一起打包了。 我现在的需求是更改其中的部分配置,我通过解压jar包可以修改,修改完之后用zip压缩,再修改文件格式为jar,但使用时会报 java.lang.SecurityException: SHA1 digest error for(我修改过的配置文件路径)[/quote] 如果啥方法都行的话,可以吧这个jar下载到本地,用WinRAR打开,手动改了那个配置。[/quote] 额,你看我的描述,我差不多是这么干的,但是再部署这个jar包就报错了。错误内容是: java.lang.SecurityException: SHA1 digest error for(我修改过的配置文件路径)[/quote] 嗯,那,为啥要改给定jar的配置?能否自己定义一下,尽量绕开给定的jar,避免冲突呢? (主要是别人的东西,不知道配置会在哪些地方用到,所以改了它的配置可能就影响jar包功能了。。)
EverWHL 2014-10-11
  • 打赏
  • 举报
回复
你这个jar应该是否已经签过名了吧 如果想改完重新打jar包 就得删除原来的签名文件,重新创建Jar包和签名
darkshaddock 2014-10-10
  • 打赏
  • 举报
回复
引用 8 楼 oh_Maxy 的回复:
[quote=引用 4 楼 darkshaddock 的回复:] [quote=引用 2 楼 oh_Maxy 的回复:] 是要通过代码实现jar包内配置文件的修改么?这样似乎不行的。。 如果是自定义的配置文件,可以考虑不要放到jar包里,直接放到工程目录下或者工程目录下的某个文件夹里。
不管什么方式,能实现就好,jar包是第三方的,它将一些配置文件放在包路径下一起打包了。 我现在的需求是更改其中的部分配置,我通过解压jar包可以修改,修改完之后用zip压缩,再修改文件格式为jar,但使用时会报 java.lang.SecurityException: SHA1 digest error for(我修改过的配置文件路径)[/quote] 如果啥方法都行的话,可以吧这个jar下载到本地,用WinRAR打开,手动改了那个配置。[/quote] 额,你看我的描述,我差不多是这么干的,但是再部署这个jar包就报错了。错误内容是: java.lang.SecurityException: SHA1 digest error for(我修改过的配置文件路径)
  • 打赏
  • 举报
回复
你当前工程新建一个同名的properties文件就行了。
oh_Maxy 2014-10-10
  • 打赏
  • 举报
回复
引用 4 楼 darkshaddock 的回复:
[quote=引用 2 楼 oh_Maxy 的回复:] 是要通过代码实现jar包内配置文件的修改么?这样似乎不行的。。 如果是自定义的配置文件,可以考虑不要放到jar包里,直接放到工程目录下或者工程目录下的某个文件夹里。
不管什么方式,能实现就好,jar包是第三方的,它将一些配置文件放在包路径下一起打包了。 我现在的需求是更改其中的部分配置,我通过解压jar包可以修改,修改完之后用zip压缩,再修改文件格式为jar,但使用时会报 java.lang.SecurityException: SHA1 digest error for(我修改过的配置文件路径)[/quote] 如果啥方法都行的话,可以吧这个jar下载到本地,用WinRAR打开,手动改了那个配置。
江湖啊江湖 2014-10-10
  • 打赏
  • 举报
回复
你想改配置文件,最好还是找给你jar包的人弄.他这么设计,本身就是为了安全着想,不让你去改那个properties文件, Name:xxx(jar包中的class,properties等文件) SHA-1-Digest: 5u5bLTDWDEUQ0CPq/AUnlFidG8I= 你这个SHA1值就是防止jar包文件篡改的,如果你改了,需要重新计算下SHA1值的.但是如何计算SHA1值我就不知了..
darkshaddock 2014-10-10
  • 打赏
  • 举报
回复
引用 3 楼 shijing266 的回复:
一般jar包中的properties文件直接修改的啊,反正都是用Tomcat或者Weblogic来启动
感谢关注,楼上有更详细信息。
darkshaddock 2014-10-10
  • 打赏
  • 举报
回复
感谢关注,楼上有更详细信息。
darkshaddock 2014-10-10
  • 打赏
  • 举报
回复
引用 2 楼 oh_Maxy 的回复:
是要通过代码实现jar包内配置文件的修改么?这样似乎不行的。。 如果是自定义的配置文件,可以考虑不要放到jar包里,直接放到工程目录下或者工程目录下的某个文件夹里。
不管什么方式,能实现就好,jar包是第三方的,它将一些配置文件放在包路径下一起打包了。 我现在的需求是更改其中的部分配置,我通过解压jar包可以修改,修改完之后用zip压缩,再修改文件格式为jar,但使用时会报 java.lang.SecurityException: SHA1 digest error for(我修改过的配置文件路径)
  • 打赏
  • 举报
回复
一般jar包中的properties文件直接修改的啊,反正都是用Tomcat或者Weblogic来启动
oh_Maxy 2014-10-10
  • 打赏
  • 举报
回复
是要通过代码实现jar包内配置文件的修改么?这样似乎不行的。。 如果是自定义的配置文件,可以考虑不要放到jar包里,直接放到工程目录下或者工程目录下的某个文件夹里。
darkshaddock 2014-10-10
  • 打赏
  • 举报
回复
来大神帮帮忙啊。。
maven到底是什么?    Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具[百度百科]    这种又是大白话,如果没明白maven是什么,那么上面这句话跟没说一样,我自己觉得,Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而这里pom.xml文件对于学了一点maven的人来说,就有些熟悉了,怎么通过pom.xml的配置就可以获取到jar包呢?pom.xml配置文件从何而来?等等类似问题我们需要搞清楚,如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以这样去想,就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。    所以,根据上一段的描述,我们最终的目的就是学会如何在pom.xml配置获取到我们想要的jar包,在此之前我们就必须了解如何创建maven项目,maven项目的结构是怎样,与普通java,web项目的区别在哪里,还有如何配置pom.xml获取到对应的jar包等等,这里提前了解一下我们如何通过pom.xml文件获取到想要的jar的,具体后面会详细讲解该配置文件

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧