如何获取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。。。。