2017-11-14 22 views
1

Fintech 제품 용 안드로이드 라이브러리를 개발 중입니다. 인증 된 사용자에게만 AAR 파일의 사용을 제한하려고합니다. 각 클라이언트에 대한 액세스 키가있는 서버 유효성 검사가 있습니다. 다른 클라이언트 측 유효성 검사가 있습니까? 내 라이브러리를 보호하는 가장 좋은 방법은 무엇입니까?안드로이드 라이브러리 보호

+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(); 
     }