When publishing an APK to the app store or connecting to a third-party SDK, you sometimes need to provide the signature summary information of the APK. You can use the digest algorithm MD5 or SHA-1 to obtain the signature summary. In addition to obtaining your own APK signature, you can also obtain other installed APK signatures on your phone. You only need to pass in the package name of other APKs.
private static final char[] HEX_CHAR = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; /** Get the signature MD5 digest*/ public String[] signatureDigest() { pkgInfo = mContext.getPackageManager().getPackageInfo( mContext.getPackageName(), PackageManager.GET_SIGNATURES); int length = pkgInfo.signatures.length; String[] digests = new String[length]; for (int i = 0; i < length; ++i) { Signature sign = mPkgInfo.signatures[i]; try { MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] digest = md5.digest(sign.toByteArray()); // get digest with md5 algorithm digests[i] = toHexString(digest); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); digests[i] = null; } } return digests; } /** Convert the byte array into the corresponding hex string*/ private String toHexString(byte[] rawByteArray) { char[] chars = new char[rawByteArray.length * 2]; for (int i = 0; i < rawByteArray.length; ++i) { byte b = rawByteArray[i]; chars[i*2] = HEX_CHAR[(b >>> 4 & 0x0F)]; chars[i*2+1] = HEX_CHAR[(b & 0x0F)]; } return new String(chars); }The above is all about this article, I hope it will be helpful to everyone's learning.