私はアンドロイドライブラリを持っています。私は有効なユーザーだけがこのライブラリを使用するかどうかをチェックする関数を追加する必要があります。これを行うには、アンドロイドのキーストアから値を読み取る必要があります。どのようにしてアンドロイドのキーストアから値を読み取ることができますか?キーストアの値を読み取る方法は?
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. CSVで値を読み取る方法
- 3. カスタムフィールド値を読み取る方法
- 4. sqlserverのテーブルの列の値を読み取る方法は?
- 5. Firebaseの子供の値を読み取る方法は?
- 6. XMLノードの値を動的に読み取る方法は?
- 7. VBScriptのレジストリから(デフォルト)値を読み取る方法は?
- 8. libtidyでは、文字列値のオプションを読み取る方法
- 9. Cでスペース区切りの値を読み取る方法は?
- 10. xmlノードレベルの値を読み取る方法は?
- 11. アンインストール時にプロパティの値を読み取る方法は?
- 12. 式ツリーでプロパティの値を読み取る方法は?
- 13. .txtファイルから複数の値を読み取る方法は?
- 14. jqueryでクッキーの値を読み取る方法は?
- 15. ashxページで設定ファイルの値を読み取る方法は?
- 16. enum型のプロパティファイルから値を読み取る方法は?
- 17. mysqlのxml列から値を読み取る方法は?
- 18. オプションのセクションから設定値を読み取る方法は?
- 19. パンダのタイムスタンプ範囲でCSV値を読み取る方法は?
- 20. プログラムでweb.configの値を読み取る方法は?
- 21. JavaBean(ドメインクラス)のプロパティファイルから値を読み取る方法は?
- 22. を別の方法である方法から値を読み取る方法
- 23. CefSharp getElementById( 'numbers')から値を読み取る方法は?
- 24. javaでHTML属性値を読み取る方法は?
- 25. HTMLテキスト入力から値を読み取る方法は?
- 26. Beanシェルプログラミングで値を読み取る方法は?
- 27. Sharepoint jsonクエリから配列値を読み取る方法は?
- 28. JTextFieldからint値を読み取る方法は?
- 29. Windowsストアアプリでレジストリ値を読み取る方法は?
- 30. シンプルなUSBデバイスから値を読み取る方法は?
「アンドロイドキーストア」とはどういう意味ですか?証明書の信頼ストアですか?あなたは正確に何をしようとしていますか? –
私は市場にアップロードする前にapkファイルに署名するために使用する.keystoreファイルを参照しています。 – Chrishan
OKですが、何をしようとしていますか?このファイルは開発者ワークステーションにのみ存在し、アプリケーションには含まれません。あなたは、アプリケーションから署名証明書を取得することができますが、それは本当に '有効な'ユーザーを識別するのに役立ちません。あなたのアプローチの詳細を提供してください。 –