• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

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

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

    閑著沒事兒寫了個(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)來獲取相應(yīng)的簽名類型 信息<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)容信息類<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; //證書工廠類,這個(gè)類實(shí)現(xiàn)了出廠合格證算法的功能<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; //加密算法的類,這里的參數(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è)人資料

    存檔

    主站蜘蛛池模板: 欧美日韩国产草草影院| 亚洲精品视频在线观看你懂的| 久久精品人妻无码一区二区三| 男女性杂交内射女bbwxz| 亚洲香蕉毛片久久网站老妇人| 亚洲人成网站在线观看青青| 精品欧美一区二区三区在线| 国产精品视频观看裸模| 麻豆精品一区二区综合av| 国产精品色婷婷亚洲综合看片| 国产一级黄色av影片| 国产男女猛烈无遮挡免费视频网址 | 韩国无码AV片午夜福利| 亚洲欧美综合乱码精品成人网| 国产免费看又黄又大又污的胸| 97SE亚洲国产综合自在线| 在线成人| 少妇无码太爽了不卡视频在线看| 无码中文字幕色专区| 久久精品国产亚洲不av麻豆| 免费精品国产自产拍在线观看图片 | 亚洲AV无码网站YW尤物| 国语精品自产拍在线观看网站| 中文字幕日产人妻久久| 亚洲AV无码乱码1区久久| 亚洲片一区二区三区| 亚洲中文字幕精品字幕| 亚洲天堂成人在线观看| 亚洲色图第一页| 麻豆国产AV穿旗袍强迫女佣人| 日韩视频中文字幕| 西畴县| 五十老熟妇乱子伦免费观看| 亚洲综合日韩av在线| 亚洲综合在线粉嫩av| 亚洲AV成人无码天堂| 国产日韩精品欧美一区喷水| 久爱无码精品免费视频在线观看| 欧美506070老妇乱子伦| 亚洲日韩图片专区第1页| 久久婷婷五月综合97色一本一本|