У меня есть андроидная библиотека. Мне нужно добавить функцию, чтобы проверить, используют ли только настоящие пользователи эту библиотеку. Для этого мне нужно прочитать значения из хранилища ключей android. Как я могу прочитать значения из хранилища ключей android?Как читать значения хранилища ключей?
ответ
Вы можете использовать `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);
Конечно, для этой проверки работы вам необходимо встроить отпечаток пальца в свою библиотеку. Имейте в виду, что довольно легко декомпилировать его и заменить отпечаток пальца.
Как я могу получить что-то вроде этого Отпечаток сертификата (MD5): 94: 1E: 43: 49: 87: 73: BB: E6: A6: 88: D7: 20: F1: 8E: B5: 98 – Chrishan
Используйте ' MessageDigest' для вычисления отпечатка пальца. Тогда возможно преобразовать в шестнадцатеричную строку. См. Обновленный ответ. –
- 1. QSettings как читать INI без значения ключей
- 2. Исключительное исключение формата хранилища ключей при загрузке файла хранилища ключей
- 3. Как использовать Redis в качестве распределенного хранилища ключей значения
- 4. Неверный формат хранилища ключей
- 5. Как читать аудиофайлы из хранилища?
- 6. Как читать значения реестра в приложении для хранилища Windows?
- 7. Как хранилища доверия и хранилища ключей используются в SSL?
- 8. Решения по удалению хранилища ключей
- 9. «Неверный формат хранилища ключей» при настройке хранилища ключей для типа «JCEKS» для симметричного шифрования ключей
- 10. Значения ключей хранилища от параметров развертывания и связанных шаблонов
- 11. Доступ хранилища ключей сертификатов в Java
- 12. Определить доступность хранилища ключей iCloud
- 13. Как удалить приложения из хранилища ключей?
- 14. Как создать файл свойств для хранилища ключей?
- 15. Как изменить псевдоним моего хранилища ключей
- 16. Как восстановить потерянный псевдоним файла хранилища ключей?
- 17. Как создать файл хранилища ключей (.pfx)
- 18. Как удалить 2 псевдонима из хранилища ключей?
- 19. Как вы создаете доверие/хранилища ключей программно?
- 20. wso2is - Добавление нового хранилища ключей
- 21. Аргументы setkeyentity из хранилища ключей
- 22. Необходим предыдущий файл хранилища ключей
- 23. можно воссоздать андроид хранилища ключей
- 24. Получить PrivateKey из хранилища ключей
- 25. утилиты обслуживания хранилища ключей Java
- 26. Использование jQuery для установки локальных ключей хранилища от входного значения
- 27. Как обновить свойство хранилища ключей во время выполнения с помощью нового загруженного файла хранилища ключей?
- 28. Использование hsqldb в качестве хранилища ключей
- 29. Способ UML для описания хранилища ключей/значений?
- 30. Создайте файл хранилища ключей с одной командой
Что вы подразумеваете под «android keystore»? Магазин доверия сертификатов? Что именно ты пытаешься сделать? –
Я имею в виду файл .keystore, который мы используем для подписи файла apk перед загрузкой на рынок. – Chrishan
Хорошо, но что вы пытаетесь сделать? Этот файл существует только на рабочей станции разработчика, он никогда не включается в приложение. Вы можете получить сертификат подписи из приложения, но это не помогло бы идентифицировать «действительных» пользователей. Предоставьте более подробную информацию о вашем подходе. –