android程序里面获取签名信息,常用于自校验,防止别人篡改您的APP.

其实就是获取package 信息。

import android.app.Activity;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager;

import android.content.pm.PackageManager.NameNotFoundException;

import android.content.pm.Signature;

import android.os.Bundle;

import android.util.Log;

import java.io.ByteArrayInputStream;

import java.io.InputStream;

import java.security.cert.CertificateException;

import java.security.cert.CertificateFactory;

import java.security.cert.X509Certificate;

public class CertActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

PackageManager pm = this.getPackageManager();

String packageName = this.getPackageName();

int flags = PackageManager.GET_SIGNATURES;

PackageInfo packageInfo = null;

try {

packageInfo = pm.getPackageInfo(packageName, flags);

} catch (NameNotFoundException e) {

// TODO some error checking

e.printStackTrace();

}

Signature[] signatures = packageInfo.signatures;

// cert = DER encoded X.509 certificate:

byte[] cert = signatures[0].toByteArray();

InputStream input = new ByteArrayInputStream(cert);

CertificateFactory cf = null;

try {

cf = CertificateFactory.getInstance("X509");

} catch (CertificateException e) {

// TODO some error checking

e.printStackTrace();

}

X509Certificate c = null;

try {

c = (X509Certificate) cf.generateCertificate(input);

} catch (CertificateException e) {

// TODO some error checking

e.printStackTrace();

}

Log.d("Example", "Certificate for: " + c.getSubjectDN());

Log.d("Example", "Certificate issued by: " + c.getIssuerDN());

Log.d("Example", "The certificate is valid from " + c.getNotBefore() + " to " + c.getNotAfter());

Log.d("Example", "Certificate SN# " + c.getSerialNumber());

Log.d("Example", "Generated with " + c.getSigAlgName());

}

}

android获取签名信息相关推荐

  1. 无法获取签名信息,请上传有效包(110506)

    此篇文章将要介绍安卓App提交应用商店时遇到的两个小问题的相关介绍,具体代码请看下文 陆陆续续做了一个半月左右的「喵呜天气」终于在今天下午成功提交到应用商店(腾讯应用宝).期间遇到两个小问题,记录如下 ...

  2. I.MX6 android 获取framebuffer信息

    /********************************************************************************* I.MX6 android 获取f ...

  3. android获取电池信息;android获取电池容量、技术、电压、电量、温度等信息

    android获取电池信息:android获取电池容量.技术.电压.电量.温度等信息 1.这里我仅展示工具类,需要注意的是这里的部分值要刷新后才能显示,添加刷新UI的方法即可,而且电量温度等都是变化的 ...

  4. android获取GPU信息;android获取GPU渲染器、供应商、版本和扩展名等信息

    android获取GPU信息:android获取GPU渲染器.供应商.版本和扩展名等信息 效果: 1.布局文件 <?xml version="1.0" encoding=&q ...

  5. Android获取通讯录信息

    Android获取通讯录信息 欢迎关注本人网站:rytter的私人博客网站 权限申请 自Android6.0以后,Android权限申请全部要求为动态申请(注:通讯录权限为危险权限),权限申请方法如下 ...

  6. Delphi 编写数字签名验证并获取签名信息

    [摘要]本文介绍Delphi 编写数字签名验证并获取签名信息,并提供详细的示例代码供参考. 一个客户想通过编程实现验证程序自身的数字签名来确保程序的完整性,防范病毒感染以及防止一些无聊人士的修改(通过 ...

  7. android 获取当前坐标,Android获取位置信息的方法

    本文实例为大家分享了Android获取位置信息的具体代码,供大家参考,具体内容如下 1.位置服务的简介:位置服务,英文翻译为Location-Based Services,缩写为LBS,又称为定位服务 ...

  8. android 6.0获取手机imei,android获取手机信息大全,android获取大全,IMEI号,IESI号,...

    android获取手机信息大全,android获取大全,IMEI号,IESI号, IMEI号,IESI号,手机型号: [java] view plaincopyprint?private void g ...

  9. Android 获取ROM信息

    Android 获取rom信息没有统一的接口,需要事先知道配置文件中的对应的值 1.打开cmd窗口 2.输入adb shell 再输入getprop命令 3.得到配置信息 查找关于rom信息对应的键, ...

最新文章

  1. python isdigit()
  2. 为什么阿里巴巴要求日期格式化时必须有使用y表示年,而不能用Y?
  3. java 菜单 分隔符_在Java中使用分隔符连接值列表最优雅的方法是什么?
  4. C++知识整理(在此感谢大牛的整理)
  5. C#扩展方法奇思妙用高级篇一:改进 Scottgu 的 In 扩展
  6. Apache Mina框架自身实现的过滤器
  7. 数据分析必备软件Excel安装包+激活工具
  8. 【视频直播篇五】vue-cli3集成vue-aliplayer-v2
  9. 2019年计算机设计大赛(省赛)
  10. MIUI目前为止最简单安装谷歌服务框架教程
  11. matlab面板数据怎么求增长率的公式,增长率怎么计算公式(7个步骤详解)
  12. java怎么画竖线_画竖线的4种方法
  13. Android和风SDK,Android 和风天气SDK获取天气
  14. 一部区块链创业者的“燃点” | 《8问》
  15. 企业微信批量导入用户
  16. 如何得到每个区域的每个土地利用类型的面积
  17. 【python】pandas库pd.to_excel操作写入excel文件参数整理与实例
  18. 微服务架构与开源框架
  19. 老李聊股:至正股份(第二篇)
  20. 公众责任险与职业责任险的区别

热门文章

  1. LaTeX tikz初探——利用emoji画GPS卫星3D分布图(3)
  2. java私聊_【转帖】实现了视频私聊功能
  3. 湘教云实名服务平台怎样认证_【i通知】小贝喊你来校园一卡通微信支付实名认证!...
  4. 分数的计算机应用教案,计算机应用实训实验
  5. 推荐一款接口自动化测试数据提取神器 JSonPath
  6. 亲密关系沟通-【归属感】提升归属感的沟通方法
  7. docker创建镜像之Dockerfile
  8. 【1】测试用例设计-测试用例概述
  9. linux中node跨服务执行文件,linux部署node.js服务并启动服务
  10. 软件测试面试-在工作中功能,接口,性能,自动化的占比是多少?