1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
public class {
* 获取签名公钥 * * @param mContext * @return */ protected static String getSignInfo(Context mContext) { String signcode = ""; try { PackageInfo packageInfo = mContext.getPackageManager() .getPackageInfo(GetAppInfo.getPackageName(mContext), PackageManager.GET_SIGNATURES); Signature[] signs = packageInfo.signatures; Signature sign = signs[0];
signcode = parseSignature(sign.toByteArray()); signcode = signcode.toLowerCase(); } catch (Exception e) { } return signcode; }
protected static String parseSignature(byte[] signature) { String sign = ""; try { CertificateFactory certFactory = CertificateFactory .getInstance("X.509"); X509Certificate cert = (X509Certificate) certFactory .generateCertificate(new ByteArrayInputStream(signature)); String pubKey = cert.getPublicKey().toString(); String ss = subString(pubKey); ss = ss.replace(",", ""); ss = ss.toLowerCase(); int aa = ss.indexOf("modulus"); int bb = ss.indexOf("publicexponent"); sign = ss.substring(aa + 8, bb); } catch (CertificateException e) { } return sign; }
public static String subString(String sub) { Pattern pp = Pattern.compile("s*|t|r|n"); Matcher mm = pp.matcher(sub); return mm.replaceAll(""); } }
|
近期评论