RT
想了解如何编程验证指定JAR的数字签名***是否需要第三方库,如果需要,如何使用

解决方案 »

  1.   

    签名步骤: 
             1.将程序打成jar包。 
                 这个我就不多说了,用eclipse,netbeans等开发工具很方便就能打包的。          2.用keytool命令生成.store文件。 
                 在任意文件夹下建立一个keytool.bat文件,输入 
         
                   keytool -genkey -keystore xxx.keystore -alias xxx -validity 3650              保存,双击执行。将在当前目录下生成一个xxx.keystore文件, -alias后接的是别名,-validity后面接的是该证书有效天数,这里3650表示10年。(用这个证书签名的程序10年内有效)。          3.用jarsigner程序对jar包进行签名。 
                新建jarsinger.bat文件,输入              jarsigner -keystore xxx.keystore helloworld.jar xxx              这样helloworld.jar就被签名了。   
      

  2.   

    签名步骤: 
             1.将程序打成jar包。 
                 这个我就不多说了,用eclipse,netbeans等开发工具很方便就能打包的。          2.用keytool命令生成.store文件。 
                 在任意文件夹下建立一个keytool.bat文件,输入 
         
                   keytool -genkey -keystore xxx.keystore -alias xxx -validity 3650              保存,双击执行。将在当前目录下生成一个xxx.keystore文件, -alias后接的是别名,-validity后面接的是该证书有效天数,这里3650表示10年。(用这个证书签名的程序10年内有效)。          3.用jarsigner程序对jar包进行签名。 
                新建jarsinger.bat文件,输入              jarsigner -keystore xxx.keystore helloworld.jar xxx              这样helloworld.jar就被签名了。   
      

  3.   

    请注意!!!!!!!!
    我的问题是:以 “编程”  的方式  “验证”   JAR签名验证!!!!!!不是怎么给JAR签名
      

  4.   

    使用java.security这个包里的signature这个类,你的需求相当于:
    1.已经有JAR包被签名了。
    2.你还握我签名JAR包的根证书
    3.你需要写JAVA代码来验证此JAR包是不是你握有的根证书签名的
      

  5.   


    非常感谢 flxi78 的回答
    不过这个Signature类似乎是一个非常底层的类,是用来签名或者验证byte数组的。
    有木有方法可以直接一步验证JAR呢?因为我对JAR包的签名过程不是非常了解,签名后包中的文件组织也不太清楚。
      

  6.   

    各种  ctrl+c&ctrl+v如果只是这样  你给个传送门吧。省得麻烦
      

  7.   

    上面给了那么的答案,貌似应该满足了你的签名
    我自己也按照这样测试过,没什么问题,其实google一下N多答案
      

  8.   

    http://stackoverflow.com/questions/1374170/how-to-verify-a-jar-signed-with-jarsigner-programmatically
    http://stackoverflow.com/questions/5587656/verifying-jar-signature
    http://stackoverflow.com/questions/4970016/how-to-verify-signature-on-self-signed-jar