패키지 이름으로 서명 정보 얻기 도구 및 사용 방법

3470 단어 필기Android
설치 도구
서명 획득 도구를 다운로드하려면 누르고 GetSign을 다운로드하십시오.apk, 그리고 핸드폰에 설치.
정보를 가져올 apk 설치
서명 정보를 가져올 apk 설치
실행 도구
실행 인터페이스는 다음과 같다. 패키지 이름을 입력하면 제3자 응용을 통해 붙여넣거나 스스로 입력할 수 있다.이곳의 가방 이름은 반드시 휴대전화에 설치된 apk의 가방 이름이어야 합니다. 그렇지 않으면 실패할 것입니다.가방 이름을 어떻게 얻는지 모르면 뒷글의 '가방 이름 얻기' 를 참고할 수 있습니다.패키지 이름을 입력한 후 수령을 클릭하면 해당하는 정보를 얻을 수 있습니다.획득한 후 대응하는'복제'버튼을 클릭하여 대응하는 정보를 복사한 후 제3자 응용 프로그램에 붙일 수 있다.
주요 코드 구현
PackageInfo pi = getPackageManager().getPackageInfo(
      packageName, PackageManager.GET_SIGNATURES);
Signature signatures = pi.signatures[0];

MessageDigest md = MessageDigest.getInstance("MD5");
md.update(signatures.toByteArray());
byte[] digest = md.digest();
md5 = toHexString(digest);

MessageDigest md2 = MessageDigest.getInstance("SHA1");
md2.update(signatures.toByteArray());
byte[] digest2 = md2.digest();
sha1 = toHexString(digest2);

ByteArrayInputStream bais = new ByteArrayInputStream(signatures.toByteArray());
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)cf.generateCertificate(bais);
signName = cert.getSigAlgName();

private void byte2hex(byte b, StringBuffer buf) {
     char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
                '9', 'A', 'B', 'C', 'D', 'E', 'F' };
     int high = ((b & 0xf0) >> 4);
     int low = (b & 0x0f);
     buf.append(hexChars[high]);
     buf.append(hexChars[low]);
}
private String toHexString(byte[] block) {
     StringBuffer buf = new StringBuffer();
     int len = block.length;
     for (int i = 0; i < len; i++) {
          byte2hex(block[i], buf);
          if (i < len-1) {
             buf.append(":");
          }
     }
     return buf.toString();
}

원본 다운로드 주소
소스가 CSDN에 업로드되었습니다. 주소: 소스 다운로드

좋은 웹페이지 즐겨찾기