2017-11-14 16 views
1

私はFintech製品用のアンドロイドライブラリを開発しています。 AARファイルの使用を認証されたユーザーに限定したいと考えています。 各クライアントのアクセスキーによるサーバー検証があります。 他のクライアント側の検証はありますか? 私のライブラリを保護する最良のメカニズムは何ですか?Androidライブラリを保護する

+0

ソリューションを見つけましたか? – user4757345

+0

はい、回答として投稿してください – MohanRaj

答えて

1

最高の解決策は、サーバー側で署名のホスティングアプリケーションとハッシュキーのパッケージ名を検証することです。

SDKのパラメータとしてハッシュキーを使用しないでください。SDKが実行時にそれを読み取り、それをサーバーに渡すようにします。

public String getCertificateHash(Context context) { 
     String hashKey = ""; 
      try { 
       PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES); 
       for (Signature signature : info.signatures) { 
        MessageDigest md = MessageDigest.getInstance("SHA"); 
        md.update(signature.toByteArray()); 
        hashKey = Base64.encodeToString(md.digest(), Base64.DEFAULT); 

       } 
      } catch (PackageManager.NameNotFoundException e) { 
       LogUtil.printObject(e); 
      } catch (NoSuchAlgorithmException e) { 
       LogUtil.printObject(e); 
      } 
      return hashKey.trim(); 
     } 
関連する問題