您的位置:首页 > 移动开发 > Android开发

Android实现获取签名及公钥的方法

2015-10-06 12:42 781 查看

1. java代码如下: 

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代码如下:

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

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android 签名 公钥