本文实例讲述了Android实现获取签名及公钥的方法。分享给大家供大家参考。具体如下:
1. java代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
private byte [] getSign(Context context) {
PackageManager pm = context.getPackageManager();
List<PackageInfo> apps = pm
.getInstalledPackages(PackageManager.GET_SIGNATURES);
Iterator<PackageInfo> iter = apps.iterator();
while (iter.hasNext()) {
PackageInfo info = iter.next();
String packageName = info.packageName;
//按包名 取签名
if (packageName.equals( "com.test.test" )) {
return info.signatures[ 0 ].toByteArray();
}
}
return null ;
}
|
2. java代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public static String getPublicKey( byte [] signature) {
try {
CertificateFactory certFactory = CertificateFactory
.getInstance( "X.509" );
X509Certificate cert = (X509Certificate) certFactory
.generateCertificate( new ByteArrayInputStream(signature));
String publickey = cert.getPublicKey().toString();
publickey = publickey.substring(publickey.indexOf( "modulus: " ) + 9 ,
publickey.indexOf( "\n" , publickey.indexOf( "modulus:" )));
Log.d( "TRACK" , publickey);
return publickey;
} catch (CertificateException e) {
e.printStackTrace();
}
return null ;
}
|
希望本文所述对大家的Android程序设计有所帮助。