zoukankan      html  css  js  c++  java
  • Android 获取开发&测试 SHA1值

    以前都是直接安装一个开发者助手获取的,但是呢,开发者助手也有bug啊,应用宝下载安装,在我的红米手机上发现打不开,于是我又去酷安网下载了一个,可以打开了,但是有问题,没法获取到完整的root权限,检测不准确,当前应用根本看不到东西,于是只能另想办法了,老套路就是百度,然后照着搞,发现很多都是直接 keytool 命令,但是我这里报 'keytool' 不是内部或外部命令 也不是可运行的程序,这个不是什么大问题,网上很多解决方案,但是本人比较懒,太麻烦的操作一般懒得做,但是又没办法,所以搜集了一下各路解决方案,总结了一下快速直接且方便的方案,记录下来,以后可以直接用

    首先获取测试版的SHA1值,就很简单,一般最简单的就是在AndroidStudio上,右边菜单,点击,点击signingReport就行了,如下图

    as直接就给你打印出来了,很方便,但是如果要获取签名的SHA1值呢,看到上面的路径了吗,其实就是用keytool命令然后附带上我们的jks就行了,这个方法测试正式都通用,有的可能直接敲命令就行了,但是肯定很多人也跟我一样,提示不是内部或外部命令,有的时候很久没搞过就会忘记,虽然百度一下的事,但是也浪费自己的时间,所以还是整理一下好,如下图

    进入到jdk路径里,在使用命令就行了,测试的jks路径就是 C:UsersLiuZhen.androiddebug.keystore

    还有一个办法就是用代码去获取了,不过个人还是觉得一步到位的好,下面是获取代码,在高德那复制的

    public String sHA1(){
            try {
                PackageInfo info = getPackageManager().getPackageInfo(
                        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;
        }

     不过有一部分项目是配置的包名,配置文件中切换测试正式,所以此时这些方法可能并不能保证是正式还是测试,所以我一般为了准确性,都是用命令去获取的

    直接进入到 cd "C:Program FilesAndroidAndroid Studiojrein" 目录,然后 keytool -list -v -keystore c:/xxx.jks 也就是你的正式签名和测试签名,这样就可以保证不会弄混

  • 相关阅读:
    原生JS(类、原型、构造函数)
    原生JS(cookie操作的封装)
    原生JS(cookie)
    原生JS(异步请求)
    原生js(1)
    iframe框架嵌套页面(全屏,页面上下左右有空白,去双滚动条)
    Zabbix4.0监控Nginx1.16
    Nginx1.16访问限制
    django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
    Zabbix4.0解决中文乱码
  • 原文地址:https://www.cnblogs.com/LiuZhen/p/12604657.html
Copyright © 2011-2022 走看看