首页 > 代码库 > Android 获取签名公钥
Android 获取签名公钥
[1].[代码] [Java]代码 跳至 [1]
?
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 | public class GetPublicKey { /** * 获取签名公钥 * @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) { Log.e(Constants.TAG, e.getMessage(), 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) { Log.e(Constants.TAG, e.getMessage(), 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( "" ); } } |
Android 获取签名公钥
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。