Android 獲取應用 MD5 SHA1 SHA256 簽名信息

閒着沒事兒寫了個小 demo ,獲取手機上已安裝應用信息,系統應用和 非系統應用
MD5 SHA1 SHA256 簽名信息 點擊簽名信息可複製到剪切板.
下載鏈接:https://download.csdn.net/download/sinat_32961877/12287543
2020.03.02 更新了一下,加了列表搜索功能,輸入 包名或者app name
如下圖:

在這裏插入圖片描述
主要就是這個方法,傳參數進來獲取相應的簽名類型 信息

    public static String getSignaturesInfo(Context context, String packageName, String tpye) {
//        //獲取包管理器
        PackageManager pm = context.getPackageManager();
        //返回包括在包中的簽名信息
        int flags = PackageManager.GET_SIGNATURES;
        PackageInfo packageInfo = null;
        try {
            //獲得包的所有內容信息類
            packageInfo = pm.getPackageInfo(packageName, flags);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        //簽名信息
        Signature[] signatures = packageInfo.signatures;
        byte[] cert = signatures[0].toByteArray();
        //將簽名轉換爲字節數組流
        InputStream input = new ByteArrayInputStream(cert);
        //證書工廠類,這個類實現了出廠合格證算法的功能
        CertificateFactory cf = null;
        try {
            cf = CertificateFactory.getInstance("X509");
        } catch (CertificateException e) {
            e.printStackTrace();
        }
        //X509證書,X.509是一種非常通用的證書格式
        X509Certificate c = null;
        try {
            c = (X509Certificate) cf.generateCertificate(input);
        } catch (CertificateException e) {
            e.printStackTrace();
        }
        String hexString = null;
        try {
            //加密算法的類,這裏的參數可以使MD4,MD5等加密算法
//            MessageDigest md = MessageDigest.getInstance("SHA1");
            MessageDigest md = MessageDigest.getInstance(tpye);
            //獲得公鑰
            byte[] publicKey = md.digest(c.getEncoded());
            //字節到十六進制的格式轉換
            hexString = byte2HexFormatted(publicKey);
        } catch (NoSuchAlgorithmException e1) {
            e1.printStackTrace();
        } catch (CertificateEncodingException e) {
            e.printStackTrace();
        }
        return hexString;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章