- 浏览: 85068 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (89)
- 源码 (2)
- tomcat服务器连接数问题解决方法 (2)
- Android (26)
- JAVA 基本 (17)
- 设计模式 (6)
- Spring Struts Hibernate ibatis Web (9)
- 汇总小结 (1)
- 性能优化 (1)
- 小算法 (1)
- Android 异常 (1)
- Http web (1)
- Linux (4)
- C C++ (1)
- JNI ANDROID (1)
- UML (1)
- 其他 (1)
- 图像 (1)
- Spring (2)
- 分布式集群 (1)
- 数据库 (4)
- jquery (1)
- oracle和mysql 积累 (0)
- struts (1)
- 宕机 (1)
- mybaties (1)
- DH_Robot1_Chn_LeChange-Baby_V1.000.0005.3.R.160407.zip (0)
- 积累 (1)
- 架构 (1)
- 基础问题? (0)
- 111 (0)
最新评论
-
jbeduhai:
表达贴切,顶一个
ThreadLocal
命令:
生成keystone(存放一组证书和私钥的地方)
keytool -genkey -alias(别名) hello -keyalg RSA -validity 20000 -keystore hello.keystore
查看keystore 信息
keytool -list -v -keystore hello.keystore -storepass 123456
缺省情况下,-list 命令打印证书的 MD5 指纹。而如果指定了 -v 选项,将以可读格式打印证书,如果指定了 -rfc 选项,将以可打印的编码格式输出证书。
keytool -list -rfc -keystore hello.keystore -storepass 123456
证书的导出:
keytool -export -alias test -keystore hello.keystore -file test.crt -storepass 123456
证书的导入
keytool -import -alias rootcert -file root.crt -keystore hello.keystore
证书条目的删除:
keytool -delete -alias ceatecert1 -keystore .keystore -storepass 123456
使用jdk的jarsigner工具对apk文件签名
jarsigner -verbose -keystore hello.keystore TestApk.apk test
签名后可以使用如下命令验证是否签名成功:
jarsigner -verify to_sign.apk
如果需要查看更详细的验证信息,可修改为:
jarsigner -certs -verbose -verify to_sign.apk
获取证书信息相关方法:
package com.nec.test; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.security.KeyStore; import java.security.PublicKey; import java.security.cert.Certificate; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import android.app.Activity; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageParser; import android.os.Bundle; import android.os.Environment; import android.util.DisplayMetrics; import android.util.Log; public class TestApkActivity extends Activity { /** Called when the activity is first created. */ private static final String FILENAME = "cacerts.bks"; private static final String FILENAME_CERT = "ca.crt"; //test.crt \ ca.crt private List<PublicKey> listKey = new ArrayList<PublicKey>(); private File file; static final String IN_FILE_NAME = "c:\\Documents and Settings\\2172980000522\\TestApk.apk"; static final String OUT_FILE_NAME = "c:\\Documents and Settings\\2172980000522\\TestApk.Zip"; private final static String PATH = "/sdcard/fcding.apk"; // TestApk.apk @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // readCacerts(FILENAME); try { readCert(FILENAME_CERT); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } TestApkActivity activity = new TestApkActivity(); PackageInfo pi = activity.parsePackage(PATH, PackageManager.GET_SIGNATURES); String issuerDN = null; String subjectDN = null; String publickey = null; try { byte[] signature = pi.signatures[0].toByteArray(); // String hash = md5(signature); CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); X509Certificate cert = (X509Certificate) certFactory.generateCertificate( new ByteArrayInputStream(signature)); issuerDN = cert.getIssuerDN().toString(); Log.d("TRACK", issuerDN); subjectDN = cert.getSubjectDN().toString(); Log.d("TRACK", subjectDN); publickey = cert.getPublicKey().toString(); Log.d("TRACK", publickey); System.out.println("====================++++++++++++++++++++"+listKey.contains(cert.getPublicKey()) ); } catch (CertificateException e) { e.printStackTrace(); } } private PackageInfo parsePackage(String archiveFilePath, int flags){ PackageParser packageParser = new PackageParser(archiveFilePath); DisplayMetrics metrics = new DisplayMetrics(); metrics.setToDefaults(); final File sourceFile = new File(archiveFilePath); PackageParser.Package pkg = packageParser.parsePackage( sourceFile, archiveFilePath, metrics, 0); if (pkg == null) { return null; } packageParser.collectCertificates(pkg, 0); return PackageParser.generatePackageInfo(pkg, null, flags, 0, 0); } private void readCert(String fileName) throws Exception{ try { CertificateFactory cf = CertificateFactory.getInstance("X.509"); InputStream in = getAssets().open(fileName); Certificate c = cf.generateCertificate(in); PublicKey publicKey = c.getPublicKey(); listKey.add(publicKey); System.out.println("********---------------**********"+publicKey.toString()); } catch (Exception e) { e.printStackTrace(); } } private void readCacerts(String filename) { try { InputStream inputStream = getAssets().open(filename); KeyStore keyStore = KeyStore.getInstance("bks"); keyStore.load(inputStream, null); file = new File(Environment.getExternalStorageDirectory(), "a.txt"); getApplication().openFileOutput("a.txt", Context.MODE_APPEND); FileOutputStream outputStream = new FileOutputStream(file); copyStream(keyStore, outputStream); Log.i(TAG, "File create Success"); } catch (Exception e) { e.printStackTrace(); } } private void copyStream(KeyStore keyStore, OutputStream fileOutputStream) throws Exception { Enumeration<String> enumeration = keyStore.aliases(); while (enumeration.hasMoreElements()) { String element = enumeration.nextElement(); Certificate certificate = keyStore.getCertificate(element); listKey.add(certificate.getPublicKey()); String content = certificate.toString(); System.out.println("================"+content); fileOutputStream.write(content.getBytes()); } } }
http://www.blogjava.net/zh-weir/archive/2011/07/19/354663.html
APk 签名 调用隐藏包
发表评论
-
HTC 刷机问题
2012-08-14 09:56 7241,没有运用工具刷机 2,没有备份系统还原 3,解锁 4 ... -
Android Parcelable
2012-05-31 21:11 1979Parcelable 传递对象时候用 Androi ... -
Android Handler
2012-05-29 16:53 620handler 将线程放入队列 Handler.poser( ... -
关于分辨率 多机型 dip px ........
2012-05-22 15:04 879320x480 (水平方向有320个像素点.垂直方向有480个 ... -
View 相关
2012-05-17 15:47 752转载文字http://hunankeda110.itey ... -
bitmap 内存溢出
2012-04-23 16:53 1275http://dyh7077063.iteye.com/blo ... -
风暴ssssss
2012-03-30 16:31 01 。做个以物易物的应用 2。大众服务和个性定制 3.菜单 ... -
Android 异常
2012-05-17 16:53 598dialog 无法依托 activity 时候 a ... -
Android title 高度定义
2012-02-04 15:56 1000mainifast.xml : <activit ... -
Android apk 安装脚本
2011-11-02 17:09 1028@echo off set cur_dir=%cd% ... -
Android 基本汇
2011-10-26 09:40 7371 Activity 生命周期 一般 ... -
Android UI Listview
2011-10-18 15:39 8581. list.setAdapter(adapter); ... -
Android 动画
2011-10-12 13:30 922http://www.htcplayer.com/thread ... -
Android 源码
2011-09-05 12:51 2574http://blog.csdn.net/maxleng/ar ... -
android 上开发air flash
2011-07-08 16:55 760http://www.jamesward.com/ ... -
登录web服务器jsonAndroid
2011-05-30 16:28 667如下: -
自定义组件
2011-05-30 15:25 759http://www.cnblogs.com/TerryBlo ... -
Android 远程回调
2011-05-19 12:39 17461.点击button 发送Handler1 Message ... -
Listview 表格
2011-05-13 10:40 698http://blog.csdn.net/hellogv/ar ... -
android TextView的字体颜色设置的多种方法
2011-05-11 09:49 1603TextView 的字体设置: 1 、直接通过配置文 ...
相关推荐
要想成为一名真正的高手,仅仅通过课程或认证考试是远远不够的,需要深入了解所使用操作系统和编程语言环境的相关文档资料,特别是各种开发手册。 虽然在实际工作中可能只会用到其中一小部分知识,但是对整个体系有...
13. 版权是知识产权的一种,包括经济权利(如复制权、发行权)和精神权利(如署名权、保护作品完整权),不涉及实际物质财产。 14. 对于伪造信息来源的攻击,数字签名技术可以有效防止,因为它确保了信息的完整性和...
数字签名和数字证书用于确保信息的完整性和认证,防止信息被篡改。 - 加密技术分为对称加密(如DES、AES)和非对称加密(如RSA、ECC),其中数字证书是由第三方CA机构签名的,确保公钥的安全性。 - 防火墙有包过滤...
AutoCAD是由美国Autodesk公司开发的专业计算机辅助设计软件,...以上知识点涵盖了AutoCAD中的一些基本操作,如绘图、编辑、属性管理、实体操作、动态块、安全选项等,这些都是高级工程师认证考试中可能涉及的重要内容。
【文档标题】提到的是“最新摄制组聘用合同范本事务所认证”,这是一份针对电影摄制组中雇佣关系的法律文件,旨在规范甲方(用人单位)与乙方(劳动者)之间的权利和义务。 【主要内容】涵盖了合同的主要条款,包括...
而OSIA(Open Source Initiative Association)则负责认证符合自由软件定义的许可证,通过认证的软件可以使用OS或OSI的商标标识。 自由软件的管理涉及如何合法合规地使用这些软件,包括遵循相应的许可协议,确保在...
课程内容包括电子商务法的绪论、本体论和关联制度论三个部分,涵盖了电子商务法的基本理论、数据电讯、电子署名、电子认证、电子协议、电子支付等相关法律制度,并探讨了电子商务与隐私权、知识产权、安全问题及纠纷...
《最新导演聘用合同范本事务所认证》是一个规范的法律文件,主要涵盖了导演与制作单位之间的聘用关系,涉及导演的工作内容、报酬支付、电视剧制作要求、著作权归属以及双方的保证与承诺等内容。以下是对该合同关键...
《OCP Cook Book》是一本专注于Oracle Certified Professional(OCP)认证备考的宝贵资源,它遵循创作共用的署名-非商业用途-保持一致1.0协议,允许读者自由复制、分发和修改内容,但需遵守相应条款。本书旨在帮助...
在本体论部分,如数据电文法律制度、电子署名法律制度和电子认证法律制度,分别探讨了数据电文的法律效力、电子署名的法律地位,以及电子认证的相关规范。其中,数据电文的法律效力和功能等同原则,电子署名的定义和...
### 知识点总结 #### 一、合同主体与背景介绍 - **甲方**:具有合法从事电视剧制作资格的法人单位。 - **乙方**:持有《电视剧制片人上岗证书》的专业人士,具备电视剧制作的相关经验。 - **背景**:甲方计划拍摄...
知识点:修改权、署名权等作者的基本权利不受保护期限限制。 14、结构化分析方法中,数据流图元素在( )中定义。 答案:D、数据字典 知识点:数据字典是数据流图的补充,用于详细定义数据流图中的各个元素。 15...
网络工程师考试是对网络技术专业人员的一种资格认证,涵盖广泛的计算机与网络知识。2019年下半年的网络工程师考试上午真题中涉及到的关键知识点包括高速缓存(Cache)的作用、中断处理的过程、内存计算、系统可靠性...
综上所述,计算机信息系统集成项目管理人员需要掌握的要点包括:软件著作权法律知识、资质认证流程与标准、职业道德规范以及企业运营的相关要求。这些知识对于在互联网行业中成功管理信息系统集成项目至关重要。
10. **商家承诺书**:商家在参与家电下乡等推广活动中,承诺遵守相关规定,不压价,做好产品销售和宣传工作,并及时录入销售信息,确保财政补贴的正确发放。 这些知识点体现了企业或个人在社会经济活动中对法律、...
这些知识点涵盖了从基本的加密标准到复杂的访问控制机制,以及相关的法律法规和技术应用。 ### 1. 数据加密标准 (DES) - **定义**: DES(Data Encryption Standard),即数据加密标准,是由IBM开发并在1977年被...