Android实现获取签名及公钥的方法
本文实例讲述了Android实现获取签名及公钥的方法。分享给大家供大家参考。具体如下:
1.java代码如下:
privatebyte[]getSign(Contextcontext){ PackageManagerpm=context.getPackageManager(); List<PackageInfo>apps=pm .getInstalledPackages(PackageManager.GET_SIGNATURES); Iterator<PackageInfo>iter=apps.iterator(); while(iter.hasNext()){ PackageInfoinfo=iter.next(); StringpackageName=info.packageName; //按包名取签名 if(packageName.equals("com.test.test")){ returninfo.signatures[0].toByteArray(); } } returnnull; }
2.java代码如下:
publicstaticStringgetPublicKey(byte[]signature){ try{ CertificateFactorycertFactory=CertificateFactory .getInstance("X.509"); X509Certificatecert=(X509Certificate)certFactory .generateCertificate(newByteArrayInputStream(signature)); Stringpublickey=cert.getPublicKey().toString(); publickey=publickey.substring(publickey.indexOf("modulus:")+9, publickey.indexOf("\n",publickey.indexOf("modulus:"))); Log.d("TRACK",publickey); returnpublickey; }catch(CertificateExceptione){ e.printStackTrace(); } returnnull; }
希望本文所述对大家的Android程序设计有所帮助。