IAPPv5调用Java获取apk的base64的原始签名 - 技术分享 - 五行资源分享网

IAPPv5调用Java获取apk的base64的原始签名

作者头像图片

作者: 五行

网络资源搬砖的爱好者

文章二维码手机扫码查看

标签:

iapp

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,如有侵权请联系!

ppv5要通过Java代码获取apk的base64的原始签名,可以使用Android提供的PackageManager和PackageInfo类。它提供了与应用商店的连接和支付服务。而获取apk的base64的原始签名并不是IAPP的主要功能之一。下面是一个简单的获取apk的base64的原始签名的示例代码:

Java文件名为SignUtil

package 你的包名;
import java.lang.*;
import com.sign.R;
import java.io.InputStream;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.Base64;
import java.util.Collection;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class SignUtil {
    public static String getSignature(String apkFilePath) {
        try {
            ZipFile zipFile = new ZipFile(apkFilePath);
            Enumeration<? extends ZipEntry> entries = zipFile.entries();
            while (entries.hasMoreElements()) {
                ZipEntry entry = entries.nextElement();
                if (entry.getName().matches("(META-INF/.*)\\.(RSA|DSA|EC)")) {
                    InputStream is = zipFile.getInputStream(entry);
                    CertificateFactory certFactory = CertificateFactory.getInstance("X509");
                    Collection<? extends Certificate> certificates = certFactory.generateCertificates(is);
                    for (Certificate certificate : certificates) {
                        if (certificate instanceof X509Certificate) {
                            X509Certificate x509Cert = (X509Certificate) certificate;
                            byte[] signature = x509Cert.getEncoded();
                            String encodeToString = Base64.getEncoder().encodeToString(signature);
                            zipFile.close();
                            return encodeToString;
                        }
                    }
                    continue;
                }
            }
            zipFile.close();
            return null;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static String getName(String apkFilePath) {
        try {
            ZipFile zipFile = new ZipFile(apkFilePath);
            Enumeration<? extends ZipEntry> entries = zipFile.entries();
            while (entries.hasMoreElements()) {
                ZipEntry entry = entries.nextElement();
                String entryName = entry.getName();
                if (entryName.matches("(META-INF/.*)\\.(RSA|DSA|EC)")) {
                    String signatureFileName = entryName.substring(entryName.lastIndexOf(47) + 1);
                    int dotIndex = signatureFileName.lastIndexOf(46);
                    if (dotIndex == -1) {
                        zipFile.close();
                        return signatureFileName;
                    }
                    String substring = signatureFileName.substring(0, dotIndex);
                    zipFile.close();
                    return substring;
                }
            }
            zipFile.close();
            return null;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

调用代码
s apkpath = "你的apk文件路径"
string sign = java SignUtil.getSignature(apkpath)
gj.sc(sign)

 

 

请注意,这段代码只是一个简单示例,如果您需要更复杂的操作或处理多个签名的情况,可能需要进行更多的调整和验证。另外,这段代码需要在应用的上下文中运行,因此在开发过程中,请根据您的需求进行适当的修改和集成。

分享到:
打赏
未经允许不得转载:

作者: 五行, 转载或复制请以 超链接形式 并注明出处 五行资源分享网
原文地址: 《IAPPv5调用Java获取apk的base64的原始签名》 发布于2023-8-22 11:20
帖子声明: 本站对文章进行整理、排版、编辑,是出于传递信息之目的, 并不意味着赞同其观点或证实其内容的真实性,不拥有所有权,不承担相关法律责任。

评论

在线链接输入图片 打卡按钮图片 私密评论按钮图片 82 + 34 =
乱评论、多次评论者一律禁言帐号或封禁IP
本站已经全面开启缓存,评论查看隐藏内容需等待1分钟后再刷新本页!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

打赏图片