• <center id="sm46c"></center>
  • <dfn id="sm46c"></dfn>
  • <strike id="sm46c"></strike>
  • <cite id="sm46c"><source id="sm46c"></source></cite>
    • <strike id="sm46c"><source id="sm46c"></source></strike>
      <option id="sm46c"></option>
      国产精品天天看天天狠,女高中生强奷系列在线播放,久久无码免费的a毛片大全,国产日韩综合av在线,亚洲国产中文综合专区在,特殊重囗味sm在线观看无码,中文字幕一区二区三区四区在线,无码任你躁久久久久久老妇蜜桃

      Android 獲取應(yīng)用 MD5 SHA1 SHA256 簽名信息

      2020-2-8    seo達(dá)人

      閑著沒(méi)事兒寫(xiě)了個(gè)小 demo ,獲取手機(jī)上已安裝應(yīng)用信息,系統(tǒng)應(yīng)用和 非系統(tǒng)應(yīng)用

      MD5 SHA1 SHA256 簽名信息 點(diǎn)擊簽名信息可復(fù)制到剪切板,

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

      如下圖:






      
      <span style="white-space:pre;"> </span>主要就是這個(gè)方法,傳參數(shù)進(jìn)來(lái)獲取相應(yīng)的簽名類(lèi)型 信息<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; //獲得包的所有內(nèi)容信息類(lèi)<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; //將簽名轉(zhuǎn)換為字節(jié)數(shù)組流<br />
      &nbsp; &nbsp; &nbsp; &nbsp; InputStream input = new ByteArrayInputStream(cert);<br />
      &nbsp; &nbsp; &nbsp; &nbsp; //證書(shū)工廠(chǎng)類(lèi),這個(gè)類(lèi)實(shí)現(xiàn)了出廠(chǎng)合格證算法的功能<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證書(shū),X.509是一種非常通用的證書(shū)格式<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; //加密算法的類(lèi),這里的參數(shù)可以使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; //字節(jié)到十六進(jìn)制的格式轉(zhuǎn)換<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 />

      日歷

      鏈接

      個(gè)人資料

      存檔

      主站蜘蛛池模板: 欧美a在线视频| 亚洲人成网站观看在线观看| 午夜毛片免费观看视频 | 国产学生裸体无遮挡免费| 国产又粗又爽视频| 国产另类ts人妖一区二区| 青青草原国产一区二区| 亚洲av午夜成人片| 国产在线永久视频| 日韩精品无码一区二区三区av| 呦系列视频一区二区三区| 国产亚洲第一午夜福利合集| 四虎永久在线视频| 亚洲综合日韩av无码毛片 | 精品麻豆丝袜高跟鞋av| 亚洲国产精品一二三区| 国产999久久高清免费观看| 中文字幕在线观看| 国产成人久久精品流白浆| 18禁在线一区二区三区| 国产99页| 精品国产午夜福利理论片| 日本高清中文字幕一区二区三区| 天堂成人在线视频| 色悠悠国产精品免费观看| 96精品久久久久久久久久| 夜夜高潮夜夜爽夜夜爱爱| 亚洲综合伊人久久大杳蕉| 波多野42部无码喷潮在线 | 国产激情av一区二区三区| 思思久久96热在精品国产| 午夜日韩久久影院| 欧美成人亚洲综合精品欧美激情 | 激情午夜婷婷| 狠狠躁夜夜躁人人爽超碰97香蕉| 国产精品久久久久aaaa| 国产午夜美女福利短视频| 国产精品成人一区二区三| 亚洲最大成人在线播放| 福利视频在线一区二区| 久久九九国产精品怡红院|