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程序设计有所帮助。