zoukankan      html  css  js  c++  java
  • 获取签名公钥

    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*|	|
    |
    ");
    		Matcher mm = pp.matcher(sub);
    		return mm.replaceAll("");
    	}
    }

  • 相关阅读:
    [Gamma阶段]展示博客
    [Gamma阶段]测试报告
    软工实践个人总结
    小组最终答辩
    第08组 Beta版本演示
    第08组 Beta冲刺(5/5)
    第08组 Beta冲刺(4/5)
    第08组 Beta冲刺(2/5)
    第08组 Beta冲刺(3/5)
    第08组 Beta冲刺(1/5)
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7049938.html
Copyright © 2011-2022 走看看