如何获取Android证书

 1 import android.content.pm.PackageInfo;
 2 import android.content.pm.PackageManager;
 3 import android.content.pm.Signature;
 4 import android.support.v7.app.AppCompatActivity;
 5 import android.os.Bundle;
 6 import android.util.Log;
 7 import android.widget.TextView;
 8 
 9 import java.io.ByteArrayInputStream;
10 import java.io.InputStream;
11 import java.security.cert.CertificateException;
12 import java.security.cert.CertificateFactory;
13 import java.security.cert.X509Certificate;
14 
15 public class MainActivity extends AppCompatActivity {
16     private TextView one;//随便定义一个TextView显示出来
17 
18     public StringBuffer getcert() {
19         PackageManager pm = getPackageManager();
20         StringBuffer sb = new StringBuffer();
21         try {
22             PackageInfo info = pm.getPackageInfo(getPackageName(),getPackageManager().GET_SIGNATURES);
23             Signature[] sigs = info.signatures;
24             for(Signature sig : sigs) {
25                 final byte[] rawCert = sig.toByteArray();
26                 InputStream certStream = new ByteArrayInputStream(rawCert);
27 
28                 final CertificateFactory certFactory;
29                 final X509Certificate x509Cert;
30 
31                 try {
32                     certFactory = CertificateFactory.getInstance("X509");
33                     x509Cert = (X509Certificate)certFactory.generateCertificate(certStream);
34 
35                     sb.append("Certificate subject:" + x509Cert.getSubjectDN() + "\n\n");
36                     sb.append("Certificate issuer:" + x509Cert.getIssuerDN() + "\n\n");
37                     sb.append("Cretificate serival number:" + x509Cert.getSerialNumber() + "\n\n");
38 
39                 } catch (CertificateException e) {
40                     //e.printStackTrace();
41                 }
42 
43             }
44         } catch (PackageManager.NameNotFoundException e) {
45             //e.printStackTrace();
46         }
47         return sb;
48     }
49     protected void onCreate(Bundle savedInstanceState) {
50 
51         super.onCreate(savedInstanceState);
52         setContentView(R.layout.activity_main);
53         one = (TextView) findViewById(R.id.one);
54         StringBuffer cert;
55         cert = getcert();
56         one.setText(cert);
57 
58 
59 
60     }
61 }


//其实就是这篇blog的代码http://blog.csdn.net/l173864930/article/details/3840952。。。。

 

posted @ 2016-08-08 11:36  黑炭BC  阅读(1290)  评论(0)    收藏  举报