android 获取应用证书及签名信息

private String[] getCertMsg(String packageName){
String[] certMsg = new String[2];
PackageInfo pis;
try {

pis = mContext.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES);

Signature[] sigs = pis.signatures;    //签名

CertificateFactory certFactory = CertificateFactory.getInstance("X.509");  

//获取证书

X509Certificate cert = (X509Certificate) certFactory.generateCertificate(

new ByteArrayInputStream(sigs[0].toByteArray()));

//获取证书发行者   可根据证书发行者来判断该应用是否被二次打包(被破解的应用重新打包后,签名与原包一定不同,据此可以判断出该应用是否被人做过改动)

certMsg[0] = cert.getIssuerDN().toString();
certMsg[1] = cert.getSubjectDN().toString();
DebugUtil.i("IssuerDN: " + certMsg[0] + "  SubjectDN: " + certMsg[1]);
} catch (CertificateException e) {
// TODO Auto-generated catch block
DebugUtil.e("CertificateException" + e.getMessage());
} catch (Exception e) {
// TODO Auto-generated catch block
DebugUtil.e("Exception: " + e.getMessage());
}
return certMsg;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值