ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品小视频,国产精品久久久久白浆,高清欧美精品xxxxx在线看http://www.aygfsteel.com/bluepluto/category/12296.htmlzh-cnTue, 09 Jun 2015 01:37:34 GMTTue, 09 Jun 2015 01:37:34 GMT60Keystore 相关的一些概å¿?/title><link>http://www.aygfsteel.com/bluepluto/archive/2015/06/07/425540.html</link><dc:creator>一直在努力 !</dc:creator><author>一直在努力 !</author><pubDate>Sun, 07 Jun 2015 06:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/bluepluto/archive/2015/06/07/425540.html</guid><wfw:comment>http://www.aygfsteel.com/bluepluto/comments/425540.html</wfw:comment><comments>http://www.aygfsteel.com/bluepluto/archive/2015/06/07/425540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/bluepluto/comments/commentRss/425540.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/bluepluto/services/trackbacks/425540.html</trackback:ping><description><![CDATA[把一些常见的 Key 相关的内容列在这åQŒä¾¿äºŽä¹‹åŽç†è§£ã€?br /><br />1. JKS (Java KeyStore) å’?PFX (pkcs12) 都是常见的密钥库的格式,用于保存完整的证书密钥对,证书铑֒Œä¿¡ä“Q证书信息åQŒå‰è€…是 Sun 制定的,适用äº?Java 世界åQŒæ¯”å¦?TomcatåQŒGeronimoåQŒWebsphere ½{‰ï¼ŒåŽè€?据说"常用äº?IIS åQˆæ²¡é…ç½®˜q? ½{‰ã€‚JKS 相关的工å…äh˜¯ JDK 带的 keytoolåQŒPFX 可以使用 opensslã€?br /><br />2. JKS 中有存放的内容常见有两类åQŒä¸€ä¸ªæ˜¯ PrivateKeyEntry, 包含了完整的证书密钥对,证书铄¡­‰ä¿¡æ¯åQŒå¦å¤–一个是 trustedCertEntry, 包含受信公钥信息。可以ä‹Éç”?keytool -list -keystore 昄¡¤ºã€?br /><br />3. 一般ä‹É用工å…ïL”Ÿæˆ?RSA 非对¿U°å¯†é’¥å¯¹ä¹‹åŽåQŒè¿˜ä¼šç”±½W¬ä¸‰æ–ÒŽœºæž?(CA) 生成½{‘֐åQŒç”¨äºŽæ ‡è¯†å¯†é’¥æ‰€æœ‰è€…çš„íw«ä†¾åQŒæ‰€ä»¥é€šå¸¸æˆ‘们会说åQŒæˆ‘们将证书下发¾l™å®¢æˆïL«¯åQŒæ­¤æ—¶çš„证书包括如下信息åQŒå…¬é’¥ï¼Œ½{‘֐ä¿¡æ¯½{‰ã€?br /><br />4. 使用 JKS 存储信息æ—Óž¼Œç”׃ºŽ Keystore 中可以存攑֤šä¸ªå¯†é’¥ä¿¡æ¯ï¼Œæ‰€ä»¥é€šè¿‡ä¼šä‹Éç”?alias 标识åQŒéœ€è¦ä‹É用时åQŒéœ€è¦æŒ‡å®šåˆ«åã€‚另外,Keystore 本èín可以使用 storepassword 保护åQŒè€Œé’ˆå¯Òޝä¸€ä¸?keyåQŒä¹Ÿå¯ä»¥æ˜¯ä‹Éç”?keypassword 保护ã€?br /><br />5. keytool 支持导入公钥和其ä»?keystoreåQŒæš‚不支持导å…?PrivateKeyEntryåQŒæ­¤æ—¶è‹¥æ‰‹ä¸­æœ‰ç§é’¥å’Œè¯ä¹¦ä¸¤ä¸ªä¿¡æ¯åQŒåªèƒ½å…ˆå€’å…¥åˆ?PFX 中,再导入到 JKS 中ã€?br /><br />openssl pkcs12 -export -in [my_certificate.crt] -inkey [my_key.key] <br />-out [keystore.p12] -name [new_alias] -CAfile [my_ca_bundle.crt] -caname<br /> root<br /><br />keytool -importkeystore -deststorepass [new_keystore_pass] <br />-destkeypass [new_key_pass] -destkeystore [keystore.jks] -srckeystore <br />[keystore.p12] -srcstoretype PKCS12 -srcstorepass <br />[pass_used_in_p12_keystore] -alias [alias_used_in_p12_keystore]<br /><br />6. JAR ½{‘֐åQŒä¸»è¦æ˜¯åœ?META-INF 目录下,除了 MANIFEST.MF 之外åQŒè¿˜æœ?*.SF å’?*.RSA æ–‡äšg åQˆåŽ¾~€éšç­¾åä‹É用的½Ž—法会略有不å?, MF 保存äº?JAR 中每个文件的散列信息åQŒä¸€èˆ¬ä‹Éç”?MD5 或è€?SHA-1<br />Name: AndroidManifest.xml<br />SHA-256-Digest: vn9XTNvoXBMgbaxUqDoc4WUsWseMfRCQQRSR87+F/Hc=<br /><br />SF æ–‡äšg使用 RSAwithSHA1, 针对 MF 中的每条信息再次生成½{‘֐ä¿¡æ¯åQŒå¦å¤–é’ˆå¯ÒŽ•´ä¸?MF 也会生成½{‘֐ä¿¡æ¯ã€?br />Name: AndroidManifest.xml<br />SHA-256-Digest: Pa/g6cA3KpnfBvCD/mgnyczjfLCSkAv2l9A+EVxaJlg=<br /><br />RSA 中是前述½{‘֐æ‰€ç”¨è¯ä¹¦ç­‰ç›¸å…³ä¿¡æ¯<br /><br />通常我们在读å?Jar æ–‡äšg的每ä¸?Entry æ—Óž¼Œå¦‚æžœ META-INF 目录下有如上文äšgåQŒä¼šåšç­¾åéªŒè¯ï¼Œå› äؓ散列信息计算需要读取文件内容,所用在调用 getCertifcate æ–ÒŽ³•æ—Óž¼Œéœ€è¦è¯»ä¸€ä¸‹æµé‡Œé¢çš„内容,如果只是验证的目的,è¯Õd–直接忽略卛_¯åQŒè€ƒè™‘è¯Õd–性能åQŒå¯ä»¥æŒ‡å®?byte[] buffer 的大ž®ï¼Œä½¿ç”¨‹¹çš„ skip æ–ÒŽ³•æ—Óž¼Œå†…部 ZipInputStream 中ä‹É用的æ˜?<br />private byte[] tmpbuf = new byte[512];<img src ="http://www.aygfsteel.com/bluepluto/aggbug/425540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/bluepluto/" target="_blank">一直在努力 !</a> 2015-06-07 14:16 <a href="http://www.aygfsteel.com/bluepluto/archive/2015/06/07/425540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">Æî¶«ÏØ</a>| <a href="http://" target="_blank">ËÉ×ÌÊÐ</a>| <a href="http://" target="_blank">º×¸ÚÊÐ</a>| <a href="http://" target="_blank">Ã×Ò×ÏØ</a>| <a href="http://" target="_blank">ÎýÁÖºÆÌØÊÐ</a>| <a href="http://" target="_blank">¹È³ÇÏØ</a>| <a href="http://" target="_blank">Î÷¹±Çø</a>| <a href="http://" target="_blank">ÍûÚÓÏØ</a>| <a href="http://" target="_blank">°²ÇìÊÐ</a>| <a href="http://" target="_blank">Ã×ÁÖÏØ</a>| <a href="http://" target="_blank">·ÊÎ÷ÏØ</a>| <a href="http://" target="_blank">¶¨Ô¶ÏØ</a>| <a href="http://" target="_blank">ÂíÉ½ÏØ</a>| <a href="http://" target="_blank">ÓªÉ½ÏØ</a>| <a href="http://" target="_blank">ºìÔ­ÏØ</a>| <a href="http://" target="_blank">À´·ïÏØ</a>| <a href="http://" target="_blank">ºÏË®ÏØ</a>| <a href="http://" target="_blank">³çÎÄÇø</a>| <a href="http://" target="_blank">¿¦À®Ç߯ì</a>| <a href="http://" target="_blank">²ýÆ½Çø</a>| <a href="http://" target="_blank">¶«Ïç×å×ÔÖÎÏØ</a>| <a href="http://" target="_blank">å¡ÏªÏØ</a>| <a href="http://" target="_blank">ÄáÀÕ¿ËÏØ</a>| <a href="http://" target="_blank">ÄϲýÊÐ</a>| <a href="http://" target="_blank">½ðËþÏØ</a>| <a href="http://" target="_blank">ͳ·¬ÊÐ</a>| <a href="http://" target="_blank">ÑÓ°²ÊÐ</a>| <a href="http://" target="_blank">ËÞǨÊÐ</a>| <a href="http://" target="_blank">»·áÏØ</a>| <a href="http://" target="_blank">ÒÀ°²ÏØ</a>| <a href="http://" target="_blank">À¶ÌïÏØ</a>| <a href="http://" target="_blank">¿ªÂ³ÏØ</a>| <a href="http://" target="_blank">ÌìÕòÏØ</a>| <a href="http://" target="_blank">´Ó½­ÏØ</a>| <a href="http://" target="_blank">¸ßÓÊÊÐ</a>| <a href="http://" target="_blank">ÑŰ²ÊÐ</a>| <a href="http://" target="_blank">ÌåÓý</a>| <a href="http://" target="_blank">ׯºÓÊÐ</a>| <a href="http://" target="_blank">²©°×ÏØ</a>| <a href="http://" target="_blank">¹ÛÌÁÇø</a>| <a href="http://" target="_blank">Ò¶³ÇÏØ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>