{"id":19408,"date":"2024-03-22T14:57:19","date_gmt":"2024-03-22T06:57:19","guid":{"rendered":"https:\/\/www.yimenyun.cn\/emen\/?p=19408"},"modified":"2024-03-22T14:57:19","modified_gmt":"2024-03-22T06:57:19","slug":"apk%e5%8e%bb%e7%ad%be%e5%90%8d%e9%aa%8c%e8%af%81%e4%bb%a3%e7%a0%81%e6%80%8e%e4%b9%88%e6%93%8d%e4%bd%9c","status":"publish","type":"post","link":"https:\/\/www.yimenyun.cn\/emen\/19408\/","title":{"rendered":"apk\u53bb\u7b7e\u540d\u9a8c\u8bc1\u4ee3\u7801\u600e\u4e48\u64cd\u4f5c?"},"content":{"rendered":"
APK\u6587\u4ef6\u662fAndroid\u5e94\u7528\u7684\u5b89\u88c5\u5305\u6587\u4ef6\uff0c\u901a\u8fc7\u5bf9APK\u6587\u4ef6\u8fdb\u884c\u7b7e\u540d\u53ef\u4ee5\u4fdd\u8bc1APK\u6587\u4ef6\u7684\u5b8c\u6574\u6027\u548c\u6765\u6e90\u7684\u53ef\u4fe1\u5ea6\u3002APK\u7b7e\u540d\u9a8c\u8bc1\u662f\u4e00\u79cd\u5e38\u89c1\u7684\u5b89\u5168\u673a\u5236\uff0c\u53ef\u4ee5\u786e\u4fdd\u7528\u6237\u5728\u5b89\u88c5\u5e94\u7528\u65f6\u4e0d\u4f1a\u53d7\u5230\u5e94\u7528\u88ab\u7be1\u6539\u6216\u6076\u610f\u4ee3\u7801\u6ce8\u5165\u7684\u5f71\u54cd\u3002<\/p>\n
APK\u7b7e\u540d\u9a8c\u8bc1\u7684\u539f\u7406\u5982\u4e0b\uff1a<\/p>\n
1. \u5f00\u53d1\u8005\u751f\u6210\u4e00\u4e2a\u5305\u542b\u5e94\u7528\u6240\u6709\u6587\u4ef6\u7684ZIP\u538b\u7f29\u6587\u4ef6\u3002<\/p>\n
2. \u5f00\u53d1\u8005\u4f7f\u7528\u81ea\u5df1\u7684\u79c1\u94a5\u5bf9ZIP\u6587\u4ef6\u8fdb\u884c\u7b7e\u540d\uff0c\u751f\u6210\u7b7e\u540d\u6587\u4ef6\u3002<\/p>\n
3. \u5f00\u53d1\u8005\u5c06\u7b7e\u540d\u6587\u4ef6\u4e0eAPK\u6587\u4ef6\u4e00\u8d77\u53d1\u5e03\u5230\u5e94\u7528\u5546\u5e97\u6216\u5176\u4ed6\u53d1\u5e03\u6e20\u9053\u3002<\/p>\n
4. \u7528\u6237\u4e0b\u8f7dAPK\u6587\u4ef6\uff0c\u5e76\u5c06\u5176\u5b89\u88c5\u5230Android\u8bbe\u5907\u4e0a\u3002<\/p>\n
5. \u5b89\u88c5\u8fc7\u7a0b\u4e2d\uff0cAndroid\u7cfb\u7edf\u4f1a\u4eceAPK\u6587\u4ef6\u4e2d\u63d0\u53d6\u7b7e\u540d\u6587\u4ef6\uff0c\u7136\u540e\u4f7f\u7528\u5e94\u7528\u5f00\u53d1\u8005\u7684\u516c\u94a5\u8fdb\u884c\u9a8c\u8bc1\u3002<\/p>\n
6. \u5982\u679c\u7b7e\u540d\u6587\u4ef6\u6709\u6548\u5e76\u4e14\u4e0e\u6240\u8ff0\u516c\u94a5\u76f8\u5339\u914d\uff0cAndroid\u7cfb\u7edf\u5c06\u8ba4\u4e3a\u8be5APK\u6587\u4ef6\u662f\u53ef\u4fe1\u7684\uff0c\u5e76\u7ee7\u7eed\u8fdb\u884c\u5b89\u88c5\u3002<\/p>\n
APK\u7b7e\u540d\u9a8c\u8bc1\u7684\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n
“`java<\/p>\n
public boolean verifySignature(String apkFilePath, String certFilePath) {<\/p>\n
try {<\/p>\n
File apkFile = new File(apkFilePath);<\/p>\n
File certFile = new File(certFilePath);<\/p>\n
Packag<\/p>\n
eManager pm = getPackageManager();<\/p>\n PackageInfo packageInfo = pm.getPackageArchiveInfo(apkFile.getAbsolutePath(), PackageManager.GET_SIGNATURES);<\/p>\n Signature[] signatures = packageInfo.signatures;<\/p>\n byte[] certBytes = readCertBytes(certFile);<\/p>\n CertificateFactory factory = CertificateFactory.getInstance(“X.509”);<\/p>\n X509Certificate cert = (X509Certificate) factorandroidstudio\u7684md5\u7b7e\u540d<\/a>y.generateCertificate(new ByteArrayInputStream(certBytes));<\/p>\n MessageDigest md = MessageDigest.getInstance(“SHA1”);<\/p>\n byte[] apkDigest = md.digest(apkFile.toByteArray());<\/p>\n<\/figure>\n<\/p>\n