<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

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

          2020-2-8    seo達人

          閑著沒事兒寫了個小 demo ,獲取手機上已安裝應用信息,系統應用和 非系統應用

          MD5 SHA1 SHA256 簽名信息 點擊簽名信息可復制到剪切板,

          GitHub:https://github.com/sunan-n/GetAppInfo

          如下圖:






          
          <span style="white-space:pre;"> </span>主要就是這個方法,傳參數進來獲取相應的簽名類型 信息<br />
          &nbsp; &nbsp; public static String getSignaturesInfo(Context context, String packageName, String tpye) {<br />
          //&nbsp; &nbsp; &nbsp; &nbsp; //獲取包管理器<br />
          &nbsp; &nbsp; &nbsp; &nbsp; PackageManager pm = context.getPackageManager();<br />
          &nbsp; &nbsp; &nbsp; &nbsp; //返回包括在包中的簽名信息<br />
          &nbsp; &nbsp; &nbsp; &nbsp; int flags = PackageManager.GET_SIGNATURES;<br />
          &nbsp; &nbsp; &nbsp; &nbsp; PackageInfo packageInfo = null;<br />
          &nbsp; &nbsp; &nbsp; &nbsp; try {<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //獲得包的所有內容信息類<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; packageInfo = pm.getPackageInfo(packageName, flags);<br />
          &nbsp; &nbsp; &nbsp; &nbsp; } catch (PackageManager.NameNotFoundException e) {<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();<br />
          &nbsp; &nbsp; &nbsp; &nbsp; }<br />
          &nbsp; &nbsp; &nbsp; &nbsp; //簽名信息<br />
          &nbsp; &nbsp; &nbsp; &nbsp; Signature[] signatures = packageInfo.signatures;<br />
          &nbsp; &nbsp; &nbsp; &nbsp; byte[] cert = signatures[0].toByteArray();<br />
          &nbsp; &nbsp; &nbsp; &nbsp; //將簽名轉換為字節數組流<br />
          &nbsp; &nbsp; &nbsp; &nbsp; InputStream input = new ByteArrayInputStream(cert);<br />
          &nbsp; &nbsp; &nbsp; &nbsp; //證書工廠類,這個類實現了出廠合格證算法的功能<br />
          &nbsp; &nbsp; &nbsp; &nbsp; CertificateFactory cf = null;<br />
          &nbsp; &nbsp; &nbsp; &nbsp; try {<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cf = CertificateFactory.getInstance("X509");<br />
          &nbsp; &nbsp; &nbsp; &nbsp; } catch (CertificateException e) {<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();<br />
          &nbsp; &nbsp; &nbsp; &nbsp; }<br />
          &nbsp; &nbsp; &nbsp; &nbsp; //X509證書,X.509是一種非常通用的證書格式<br />
          &nbsp; &nbsp; &nbsp; &nbsp; X509Certificate c = null;<br />
          &nbsp; &nbsp; &nbsp; &nbsp; try {<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c = (X509Certificate) cf.generateCertificate(input);<br />
          &nbsp; &nbsp; &nbsp; &nbsp; } catch (CertificateException e) {<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();<br />
          &nbsp; &nbsp; &nbsp; &nbsp; }<br />
          &nbsp; &nbsp; &nbsp; &nbsp; String hexString = null;<br />
          &nbsp; &nbsp; &nbsp; &nbsp; try {<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //加密算法的類,這里的參數可以使MD4,MD5等加密算法<br />
          //&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MessageDigest md = MessageDigest.getInstance("SHA1");<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MessageDigest md = MessageDigest.getInstance(tpye);<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //獲得公鑰<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; byte[] publicKey = md.digest(c.getEncoded());<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //字節到十六進制的格式轉換<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hexString = byte2HexFormatted(publicKey);<br />
          &nbsp; &nbsp; &nbsp; &nbsp; } catch (NoSuchAlgorithmException e1) {<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e1.printStackTrace();<br />
          &nbsp; &nbsp; &nbsp; &nbsp; } catch (CertificateEncodingException e) {<br />
          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();<br />
          &nbsp; &nbsp; &nbsp; &nbsp; }<br />
          &nbsp; &nbsp; &nbsp; &nbsp; return hexString;<br />
          &nbsp; &nbsp; }<br />
          <br />

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://m.sdgs6788.com

          存檔

          一本久久久久久久| 久久精品国产亚洲av麻豆蜜芽| 亚洲精品乱码久久久久久按摩| 久久久久av无码免费网| 漂亮人妻被黑人久久精品| 成人午夜精品久久久久久久小说| A级毛片无码久久精品免费| 久久人人爽人人爽人人av东京热| 国产综合久久久久| 亚洲国产成人久久笫一页| 麻豆成人久久精品二区三区免费| 99久久99久久精品国产| 久久午夜免费视频| 国产精品伊人久久伊人电影| 久久人人爽人人爽人人爽| 国产精品久久久久久久午夜片| 免费精品久久天干天干| 久久99精品久久久久久水蜜桃| 久久天天躁狠狠躁夜夜avapp | 亚洲中文字幕无码久久2020| 成人妇女免费播放久久久| 日韩欧美亚洲国产精品字幕久久久| 久久影院综合精品| 久久精品国产久精国产果冻传媒| 久久精品无码一区二区日韩AV| 久久99国产综合精品女同| 久久精品人人做人人爽电影 | 久久强奷乱码老熟女| 欧美亚洲另类久久综合| 国产精品欧美久久久天天影视| 99久久99久久精品国产片果冻| 伊人久久大香线蕉AV一区二区| 久久精品国产欧美日韩| 国产精品VIDEOSSEX久久发布| 狠狠狠色丁香婷婷综合久久五月| 久久成人国产精品| 99久久99这里只有免费的精品| 欧美黑人激情性久久| 99久久精品国产麻豆| 成人久久精品一区二区三区| 精品国产乱码久久久久久郑州公司 |