私はアンドロイドライブラリを持っています。私は有効なユーザーだけがこのライブラリを使用するかどうかをチェックする関数を追加する必要があります。これを行うには、アンドロイドのキーストアから値を読み取る必要があります。どのようにしてアンドロイドのキーストアから値を読み取ることができますか?キーストアの値を読み取る方法は?
2
A
答えて
0
「PacakgeInfo.signatures」を使用すると、アプリの署名証明書を取得できます。通常、署名は1つのみであるため、証明書が必要です(証明書を保持していますが、「署名」と呼ばれています)。 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);
もちろん、このチェックを有効にするには、あなたのライブラリに指紋を埋め込む必要があります。それを逆コンパイルして指紋を置き換えることは非常に簡単です。
+0
どうすればいいですか? 証明書の指紋(MD5):94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98 – Chrishan
+0
' MessageDigest'クラスを使用して指紋を計算します。その後、おそらく16進文字列に変換します。更新された回答をご覧ください。 –
関連する問題
- 1. カスタムフィールド値を読み取る方法
- 2. sqlserverのテーブルの列の値を読み取る方法は?
- 3. jqueryでクッキーの値を読み取る方法は?
- 4. JavaBean(ドメインクラス)のプロパティファイルから値を読み取る方法は?
- 5. VBScriptのレジストリから(デフォルト)値を読み取る方法は?
- 6. ashxページで設定ファイルの値を読み取る方法は?
- 7. XMLノードの値を動的に読み取る方法は?
- 8. プログラムでweb.configの値を読み取る方法は?
- 9. アンインストール時にプロパティの値を読み取る方法は?
- 10. enum型のプロパティファイルから値を読み取る方法は?
- 11. を別の方法である方法から値を読み取る方法
- 12. コンマ区切りファイルから値を読み取る方法は?
- 13. シンプルなUSBデバイスから値を読み取る方法は?
- 14. Beanシェルプログラミングで値を読み取る方法は?
- 15. テーブルの列の各値を読み取る方法
- 16. Cのテキストファイルから数値のブロックを読み取る方法
- 17. Outlookのカスタムフィールドの値を読み取る方法
- 18. WPFのGridview列コントロールから値を読み取る方法
- 19. C#RazorビューでHTMLタグの値を読み取る方法
- 20. Microsoft Test ManagerのTestCaseからパラメータ値を読み取る方法
- 21. MaxConcurrentRequestsPerCPUの現在値を読み取る方法
- 22. JavaScriptのASP.net TextBoxテンプレート列から値を読み取る方法
- 23. ascxページでweb.configの値を読み取る方法
- 24. キーストアを読み込むときにポップアップを防止する方法
- 25. Java PushbackInputStreamを使用して数値を読み取る方法
- 26. バーコードから読み取る方法は?
- 27. Pythonでファイルからパラメータ値を読み取る方法
- 28. 価格帯スライダー(jquery)から値を読み取る方法
- 29. xmlファイルから単一ノード値を読み取る方法
- 30. C++でファイルから整数値を読み取る方法
「アンドロイドキーストア」とはどういう意味ですか?証明書の信頼ストアですか?あなたは正確に何をしようとしていますか? –
私は市場にアップロードする前にapkファイルに署名するために使用する.keystoreファイルを参照しています。 – Chrishan
OKですが、何をしようとしていますか?このファイルは開発者ワークステーションにのみ存在し、アプリケーションには含まれません。あなたは、アプリケーションから署名証明書を取得することができますが、それは本当に '有効な'ユーザーを識別するのに役立ちません。あなたのアプローチの詳細を提供してください。 –