我有一个安卓库。我需要添加函数来检查只有有效用户是否使用此库。为此,我需要从android keystore读取值。如何从android keystore读取值?
答案 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);
当然,要使此检查生效,您需要将指纹嵌入库中。请记住,反编译它很容易,并替换指纹。