如何读取密钥库值?

时间:2012-03-19 01:01:11

标签: android keystore code-access-security

我有一个安卓库。我需要添加函数来检查只有有效用户是否使用此库。为此,我需要从android keystore读取值。如何从android keystore读取值?

1 个答案:

答案 0 :(得分:0)

您可以使用“PacakgeInfo.signatures”获取应用的签名证书。通常只有一个签名,所以这应该给你证书(它持有证书,即使它被称为'签名')。您可以使用blob的SHA1等哈希来获得指纹以进行比较。

PackageInfo pi = packageManager.getPackageInfo(getPackageName());
byte[] certificate = pi.signatures[0].toByteArray();
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] fingerprint = md.digest(certificate);
String hexFingerprint = toHexString(fingerprint);

当然,要使此检查生效,您需要将指纹嵌入库中。请记住,反编译它很容易,并替换指纹。