1、通过代码获取SHA1:

 public static String getSHA1(Context context) {        try {            PackageManager pm = context.getPackageManager();// 获取包管理器            String packageName = context.getPackageName(); //获取包名            PackageInfo info = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);            byte[] cert = info.signatures[0].toByteArray();            MessageDigest md = MessageDigest.getInstance("SHA1");            byte[] publicKey = md.digest(cert);            StringBuffer hexString = new StringBuffer();            for (int i = 0; i < publicKey.length; i++) {                String appendString = Integer.toHexString(0xFF & publicKey[i]).toUpperCase(Locale.US);                if (appendString.length() == 1) {                    hexString.append("0");                }                hexString.append(appendString);                hexString.append(":");            }            String result = hexString.toString();            return result.substring(0, result.length() - 1);        } catch (Exception e) {            e.printStackTrace();        }        return null;    }

 

2、通过代码获取MD5:

public static String getMD5(Context context) {        try {            PackageManager pm = context.getPackageManager();// 获取包管理器            String packageName = context.getPackageName(); //获取包名            PackageInfo packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);            Signature[] signatures = packageInfo.signatures;// 签名信息            byte[] signatureByte = signatures[0].toByteArray();            ByteArrayInputStream inputStream = new ByteArrayInputStream(signatureByte);// 将签名转换为字节数组流            CertificateFactory certFactory = CertificateFactory.getInstance("X.509");// 证书工厂类,这个类实现了出厂合格证算法的功能            X509Certificate cert = (X509Certificate) certFactory.generateCertificate(inputStream);// X509证书,X.509是一种非常通用的证书格式            MessageDigest md = MessageDigest.getInstance("MD5");// MD5加密算法            byte[] publicKey = md.digest(cert.getEncoded());//获得公钥            StringBuilder str = new StringBuilder(publicKey.length * 2);            for (int i = 0; i < publicKey.length; i++) {                String h = Integer.toHexString(publicKey[i]);                int l = h.length();                if (l == 1)                    h = "0" + h;                if (l > 2)                    h = h.substring(l - 2, l);                str.append(h.toUpperCase());                if (i < (publicKey.length - 1))                    str.append(':');            }            return str.toString();        } catch (Exception e) {            e.printStackTrace();        }        return null;    }


 

 

 

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  3. android 获取唯一标识
  4. android拍照与读取相册
  5. Android(安卓)热点开关状态的判断和获取热点ssid
  6. Android软键盘适配问题
  7. AIR Native Extension的使用(Android)一 : 打包ane
  8. android之BitMap
  9. Android中GPS定位的简单应用

随机推荐

  1. android 生命周期复习1
  2. 中国移动开发者社区专访:学习Android的两
  3. Java笔记:[反射篇] 利用反射,获取类中的私
  4. Android开发:Android设备传感器开发总结
  5. 关于在Android SDK中找不到Android Suppo
  6. Android 启动 白屏问题 解决
  7. android 在EditText内嵌入图片资源
  8. android:contentDescription 的用途
  9. Android常用类库介绍
  10. android架构层次了解及涉及技术归纳