Android获取MD5的两种方法_GIS数据共享

Android获取MD5的两种方法

2024-12-17 08:47:54  浏览:301  作者:管理员
Android md5通常使用命令从keystore获取,但是我执行上述命令时出错,因此采用方法二打包后获取

一、Android md5通常使用如下命令从keystore获取:

keytool -list -v -keystore <keystore文件路径> -alias <别名>

上述代码在Android studio的终端terminal直接运行即可。输入上述命令后需要你输入正确的密码,才能获取。

但是我执行上述命令时出错,报错如下:

图片.png

因此采用方法二打包后获取

二、打包后获取md5

在任意启动中执行如下方法:

private static String getSigningMd5(Context context) {
        try {
            PackageManager pm = context.getPackageManager();
            Signature[] signatures = pm.getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;
            for (Signature signature : signatures) {
                CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
                ByteArrayInputStream inputStream = new ByteArrayInputStream(signature.toByteArray());
                X509Certificate certificate = (X509Certificate) certificateFactory.generateCertificate(inputStream);
                MessageDigest md = MessageDigest.getInstance("MD5");
                byte[] digest = md.digest(certificate.getEncoded());
                StringBuilder md5Builder = new StringBuilder();
                for (byte b : digest) {
                    md5Builder.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1));
                }
                return md5Builder.toString();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

可以使用Log.d("getmd5func", getSigningMd5(MainActivity.this))打印md5到logcat,为了快速定位,可以使用getmd5func关键词进行日志过滤。



扫码查看

评论区

共 0 条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机内容】

返回顶部