Как прочитать значения хранилища ключей? - PullRequest
2 голосов
/ 19 марта 2012

У меня есть библиотека Android. Мне нужно добавить функцию, чтобы проверить, используют ли эту библиотеку только действительные пользователи. Для этого мне нужно прочитать значения из хранилища ключей Android. Как я могу прочитать значения из хранилища ключей Android?

1 Ответ

0 голосов
/ 19 марта 2012

Вы можете использовать ` PacakgeInfo.signatures ', чтобы получить сертификат подписи приложений.Как правило, есть только одна подпись, так что это должно дать вам сертификат (он содержит сертификат, даже если он называется «подпись»).Вы можете взять 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);

Конечно, чтобы эта проверка работала, вам нужно будет вставить отпечаток в вашу библиотеку.Имейте в виду, что декомпилировать его и заменить отпечаток пальца довольно просто.

...