{"id":1423,"date":"2024-08-08T14:03:03","date_gmt":"2024-08-08T06:03:03","guid":{"rendered":"https:\/\/blog.nonot.cn\/?p=1423"},"modified":"2024-08-08T15:26:52","modified_gmt":"2024-08-08T07:26:52","slug":"java%e7%9a%84%e7%b1%bb%e5%ba%93keytool%e5%92%8cjarsigner-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%ad%be%e5%90%8d","status":"publish","type":"post","link":"https:\/\/blog.nonot.cn\/index.php\/2024\/08\/08\/java%e7%9a%84%e7%b1%bb%e5%ba%93keytool%e5%92%8cjarsigner-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%ad%be%e5%90%8d\/","title":{"rendered":"java\u7684\u7c7b\u5e93keytool\u548cjarsigner \u8fdb\u884c\u5e94\u7528\u7b7e\u540d"},"content":{"rendered":"<p>C:\\Program Files (x86)\\Java\\jdk1.7\\bin&gt;keytool -genkey -alias MyFirstApp.keystore -keyalg RSA -validity 40000 -keystore &#8216;d:\\MyFirstApp.keystore&#8217;<\/p>\n<p>&nbsp;<\/p>\n<p>\u4e00\u3001\u7b7e\u540d\u4ee3\u7801<\/p>\n<p>\uff08\u9996\u5148\u914d\u7f6e\u597djdk\u7684\u8def\u5f84\uff0ckeytool\u548cjarsigner\u90fd\u662fjava\u7684\u7c7b\u5e93\uff09<\/p>\n<p>1.\u751f\u6210\u7b7e\u540d\u6587\u4ef6<\/p>\n<p>keytool -genkey -alias MyFirstApp.keystore -keyalg RSA -validity 40000 -keystore MyFirstApp.keystore<br \/>\n2.\u5e94\u7528\u7b7e\u540d\u6587\u4ef6\u7ed9\u6587\u4ef6\u7b7e\u540d<\/p>\n<p>jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore<\/p>\n<p>\uff08\u7279\u522b\u6ce8\u610f\uff1ajdk7\u7b7e\u540d\u540eapk\u6587\u4ef6\u65e0\u6cd5\u6b63\u5e38\u5b89\u88c5\uff0c\u9700\u8981\u5728\u7b7e\u540d\u7a0b\u5e8f jarsigner \u589e\u52a0\u5982\u4e0b\u53c2\u6570-digestalg SHA1 -sigalg MD5withRSA\uff09<\/p>\n<p>1.keytool\u7528\u6cd5\uff1a<\/p>\n<p>-certreq [-v] [-protected]<br \/>\n[-alias &lt;\u522b\u540d&gt;] [-sigalg &lt;sigalg&gt;]<br \/>\n[-file &lt;csr_file&gt;] [-keypass &lt;\u5bc6\u94a5\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-keystore &lt;\u5bc6\u94a5\u5e93&gt;] [-storepass &lt;\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-storetype &lt;\u5b58\u50a8\u7c7b\u578b&gt;] [-providername &lt;\u540d\u79f0&gt;]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;]<\/p>\n<p>-changealias [-v] [-protected] -alias &lt;\u522b\u540d&gt; -destalias &lt;\u76ee\u6807\u522b\u540d&gt;<br \/>\n[-keypass &lt;\u5bc6\u94a5\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-keystore &lt;\u5bc6\u94a5\u5e93&gt;] [-storepass &lt;\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-storetype &lt;\u5b58\u50a8\u7c7b\u578b&gt;] [-providername &lt;\u540d\u79f0&gt;]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;]<\/p>\n<p>-delete [-v] [-protected] -alias &lt;\u522b\u540d&gt;<br \/>\n[-keystore &lt;\u5bc6\u94a5\u5e93&gt;] [-storepass &lt;\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-storetype &lt;\u5b58\u50a8\u7c7b\u578b&gt;] [-providername &lt;\u540d\u79f0&gt;]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;]<\/p>\n<p>-exportcert [-v] [-rfc] [-protected]<br \/>\n[-alias &lt;\u522b\u540d&gt;] [-file &lt;\u8ba4\u8bc1\u6587\u4ef6&gt;]<br \/>\n[-keystore &lt;\u5bc6\u94a5\u5e93&gt;] [-storepass &lt;\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-storetype &lt;\u5b58\u50a8\u7c7b\u578b&gt;] [-providername &lt;\u540d\u79f0&gt;]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;]<\/p>\n<p>-genkeypair [-v] [-protected]<br \/>\n[-alias &lt;\u522b\u540d&gt;]<br \/>\n[-keyalg &lt;keyalg&gt;] [-keysize &lt;\u5bc6\u94a5\u5927\u5c0f&gt;]<br \/>\n[-sigalg &lt;sigalg&gt;] [-dname &lt;dname&gt;]<br \/>\n[-validity &lt;valDays&gt;] [-keypass &lt;\u5bc6\u94a5\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-keystore &lt;\u5bc6\u94a5\u5e93&gt;] [-storepass &lt;\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-storetype &lt;\u5b58\u50a8\u7c7b\u578b&gt;] [-providername &lt;\u540d\u79f0&gt;]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;]<\/p>\n<p>-genseckey [-v] [-protected]<br \/>\n[-alias &lt;\u522b\u540d&gt;] [-keypass &lt;\u5bc6\u94a5\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-keyalg &lt;keyalg&gt;] [-keysize &lt;\u5bc6\u94a5\u5927\u5c0f&gt;]<br \/>\n[-keystore &lt;\u5bc6\u94a5\u5e93&gt;] [-storepass &lt;\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-storetype &lt;\u5b58\u50a8\u7c7b\u578b&gt;] [-providername &lt;\u540d\u79f0&gt;]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;]<\/p>\n<p>-help<\/p>\n<p>-importcert [-v] [-noprompt] [-trustcacerts] [-protected]<br \/>\n[-alias &lt;\u522b\u540d&gt;]<br \/>\n[-file &lt;\u8ba4\u8bc1\u6587\u4ef6&gt;] [-keypass &lt;\u5bc6\u94a5\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-keystore &lt;\u5bc6\u94a5\u5e93&gt;] [-storepass &lt;\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-storetype &lt;\u5b58\u50a8\u7c7b\u578b&gt;] [-providername &lt;\u540d\u79f0&gt;]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;]<\/p>\n<p>-importkeystore [-v]<br \/>\n[-srckeystore &lt;\u6e90\u5bc6\u94a5\u5e93&gt;] [-destkeystore &lt;\u76ee\u6807\u5bc6\u94a5\u5e93&gt;]<br \/>\n[-srcstoretype &lt;\u6e90\u5b58\u50a8\u7c7b\u578b&gt;] [-deststoretype &lt;\u76ee\u6807\u5b58\u50a8\u7c7b\u578b&gt;]<br \/>\n[-srcstorepass &lt;\u6e90\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;] [-deststorepass &lt;\u76ee\u6807\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-srcprotected] [-destprotected]<br \/>\n[-srcprovidername &lt;\u6e90\u63d0\u4f9b\u65b9\u540d\u79f0&gt;]<br \/>\n[-destprovidername &lt;\u76ee\u6807\u63d0\u4f9b\u65b9\u540d\u79f0&gt;]<br \/>\n[-srcalias &lt;\u6e90\u522b\u540d&gt; [-destalias &lt;\u76ee\u6807\u522b\u540d&gt;]<br \/>\n[-srckeypass &lt;\u6e90\u5bc6\u94a5\u5e93\u53e3\u4ee4&gt;] [-destkeypass &lt;\u76ee\u6807\u5bc6\u94a5\u5e93\u53e3\u4ee4&gt;]]<br \/>\n[-noprompt]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;]<\/p>\n<p>-keypasswd [-v] [-alias &lt;\u522b\u540d&gt;]<br \/>\n[-keypass &lt;\u65e7\u5bc6\u94a5\u5e93\u53e3\u4ee4&gt;] [-new &lt;\u65b0\u5bc6\u94a5\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-keystore &lt;\u5bc6\u94a5\u5e93&gt;] [-storepass &lt;\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-storetype &lt;\u5b58\u50a8\u7c7b\u578b&gt;] [-providername &lt;\u540d\u79f0&gt;]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;]<\/p>\n<p>-list [-v | -rfc] [-protected]<br \/>\n[-alias &lt;\u522b\u540d&gt;]<br \/>\n[-keystore &lt;\u5bc6\u94a5\u5e93&gt;] [-storepass &lt;\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-storetype &lt;\u5b58\u50a8\u7c7b\u578b&gt;] [-providername &lt;\u540d\u79f0&gt;]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;]<\/p>\n<p>-printcert [-v] [-file &lt;\u8ba4\u8bc1\u6587\u4ef6&gt;]<\/p>\n<p>-storepasswd [-v] [-new &lt;\u65b0\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-keystore &lt;\u5bc6\u94a5\u5e93&gt;] [-storepass &lt;\u5b58\u50a8\u5e93\u53e3\u4ee4&gt;]<br \/>\n[-storetype &lt;\u5b58\u50a8\u7c7b\u578b&gt;] [-providername &lt;\u540d\u79f0&gt;]<br \/>\n[-providerclass &lt;\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0&gt; [-providerarg &lt;\u53c2\u6570&gt;]] &#8230;<br \/>\n[-providerpath &lt;\u8def\u5f84\u5217\u8868&gt;<\/p>\n<p>2.jarsigner\u7528\u6cd5\uff1a [\u9009\u9879] jar \u6587\u4ef6\u522b\u540d<\/p>\n<p>jarsigner -verify [\u9009\u9879] jar \u6587\u4ef6<\/p>\n<p>[-keystore &lt;url&gt;] \u5bc6\u94a5\u5e93\u4f4d\u7f6e<\/p>\n<p>[-storepass &lt;\u53e3\u4ee4&gt;] \u7528\u4e8e\u5bc6\u94a5\u5e93\u5b8c\u6574\u6027\u7684\u53e3\u4ee4<\/p>\n<p>[-storetype &lt;\u7c7b\u578b&gt;] \u5bc6\u94a5\u5e93\u7c7b\u578b<br \/>\n[-keypass &lt;\u53e3\u4ee4&gt;] \u4e13\u7528\u5bc6\u94a5\u7684\u53e3\u4ee4\uff08\u5982\u679c\u4e0d\u540c\uff09<br \/>\n[-sigfile &lt;\u6587\u4ef6&gt;] .SF\/.DSA \u6587\u4ef6\u7684\u540d\u79f0<br \/>\n[-signedjar &lt;\u6587\u4ef6&gt;] \u5df2\u7b7e\u540d\u7684 JAR \u6587\u4ef6\u7684\u540d\u79f0<br \/>\n[-digestalg &lt;\u7b97\u6cd5&gt;] \u6458\u8981\u7b97\u6cd5\u7684\u540d\u79f0<br \/>\n[-sigalg &lt;\u7b97\u6cd5&gt;] \u7b7e\u540d\u7b97\u6cd5\u7684\u540d\u79f0<br \/>\n[-verify] \u9a8c\u8bc1\u5df2\u7b7e\u540d\u7684 JAR \u6587\u4ef6<br \/>\n[-verbose] \u7b7e\u540d\/\u9a8c\u8bc1\u65f6\u8f93\u51fa\u8be6\u7ec6\u4fe1\u606f<br \/>\n[-certs] \u8f93\u51fa\u8be6\u7ec6\u4fe1\u606f\u548c\u9a8c\u8bc1\u65f6\u663e\u793a\u8bc1\u4e66<br \/>\n[-tsa &lt;url&gt;] \u65f6\u95f4\u6233\u673a\u6784\u7684\u4f4d\u7f6e<br \/>\n[-tsacert &lt;\u522b\u540d&gt;] \u65f6\u95f4\u6233\u673a\u6784\u7684\u516c\u5171\u5bc6\u94a5\u8bc1\u4e66<br \/>\n[-altsigner &lt;\u7c7b&gt;] \u66ff\u4ee3\u7684\u7b7e\u540d\u673a\u5236\u7684\u7c7b\u540d<br \/>\n[-altsignerpath &lt;\u8def\u5f84\u5217\u8868&gt;] \u66ff\u4ee3\u7684\u7b7e\u540d\u673a\u5236\u7684\u4f4d\u7f6e<br \/>\n[-internalsf] \u5728\u7b7e\u540d\u5757\u5185\u5305\u542b .SF \u6587\u4ef6<br \/>\n[-sectionsonly] \u4e0d\u8ba1\u7b97\u6574\u4e2a\u6e05\u5355\u7684\u6563\u5217<br \/>\n[-protected] \u5bc6\u94a5\u5e93\u5df2\u4fdd\u62a4\u9a8c\u8bc1\u8def\u5f84<br \/>\n[-providerName &lt;\u540d\u79f0&gt;] \u63d0\u4f9b\u8005\u540d\u79f0<br \/>\n[-providerClass &lt;\u7c7b&gt; \u52a0\u5bc6\u670d\u52a1\u63d0\u4f9b\u8005\u7684\u540d\u79f0<br \/>\n[-providerArg &lt;\u53c2\u6570&gt;]] &#8230; \u4e3b\u7c7b\u6587\u4ef6\u548c\u6784\u9020\u51fd\u6570\u53c2\u6570<br \/>\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014THE END\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C:\\Program Files (x86)\\Java\\jd&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1423","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"https:\/\/blog.nonot.cn\/index.php\/wp-json\/wp\/v2\/posts\/1423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.nonot.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nonot.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nonot.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nonot.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1423"}],"version-history":[{"count":2,"href":"https:\/\/blog.nonot.cn\/index.php\/wp-json\/wp\/v2\/posts\/1423\/revisions"}],"predecessor-version":[{"id":1425,"href":"https:\/\/blog.nonot.cn\/index.php\/wp-json\/wp\/v2\/posts\/1423\/revisions\/1425"}],"wp:attachment":[{"href":"https:\/\/blog.nonot.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nonot.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nonot.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}