首页 > 代码库 > 获取签名公钥
获取签名公钥
public class SignInfo { public static final String TAG = "SignInfo"; /** * 获取签名公钥 * * @param mContext * @return */ protected static String getSignInfo(Context mContext) { String signcode = ""; try { PackageInfo packageInfo = mContext.getPackageManager() .getPackageInfo(mContext.getPackageName(), PackageManager.GET_SIGNATURES); Signature[] signs = packageInfo.signatures; Signature sign = signs[0]; signcode = parseSignature(sign.toByteArray()); signcode = signcode.toLowerCase(); } catch (Exception e) { DebugUtil.e(TAG, e.getMessage()); } 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) { DebugUtil.e(TAG, e.getMessage()); } return sign; } public static String subString(String sub) { Pattern pp = Pattern.compile("\\s*|\t|\r|\n"); Matcher mm = pp.matcher(sub); return mm.replaceAll(""); } }
获取签名公钥
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。