Android 获取签名文件jks的SHA1值或者SHA256的值

 

apk文件需要利用jks进行签名,可以防止应用被恶意篡改替换,标识开发者身份,加强了应用的安全性.(keystore也可以)

第一种最智慧的方法

使用安卓studio自带功能(谷歌真的很强大)

Android 获取签名文件jks的SHA1值或者SHA256的值_第1张图片

鼠标点击一下,就得到你想要的结果

Android 获取签名文件jks的SHA1值或者SHA256的值_第2张图片

 

 

第二种利用keytool工具

keytool -list -v -keystore canvaskeystore.jks
Android 获取签名文件jks的SHA1值或者SHA256的值_第3张图片

Android 获取签名文件jks的SHA1值或者SHA256的值_第4张图片

第三种利用代码获取

 public static String sHA1(Context context) {
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo(
                    context.getPackageName(), 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 (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }


 

你可能感兴趣的:(安卓系统相关,Android)