java獲取手機已安裝APK的簽名摘要
更新時間:2016年02月13日 17:01:23 投稿:lijiao
這篇文章主要介紹了java獲取手機已安裝APK的簽名摘要的相關資料,需要的朋友可以參考下
將APK發(fā)布到應用商店或接入第三方的SDK時,有時需要提供APK的簽名摘要信息,可以通過摘要算法MD5或SHA-1來獲取簽名的摘要,除了獲取自己的APK簽名,也可以獲取手機上其他已安裝的APK簽名,只需要傳入其他APK的包名即可。
private static final char[] HEX_CHAR = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; /** 獲取簽名的MD5摘要 */ 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; } /** 將字節(jié)數組轉化為對應的十六進制字符串 */ 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); }
以上就是本文的全部內容,希望對大家的學習有所幫助。
相關文章
@MapperScan掃描包里混有@Service等問題如何解決
這篇文章主要介紹了@MapperScan掃描包里混有@Service等問題如何解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03