[英]unity3d android get keyhash runtime
我目前正在Unity3d上開發游戲。 據我所知,如果您以某種方式篡改了apk文件,其簽名將被更改。 現在有任何方法可以獲取apk的當前簽名,以便我可以將其與已保存的apk進行匹配,並檢測我的apk是否進行了任何更改。
謝謝。
您可以像這樣在Java中簽入
public static boolean checkSignature(Context context,String keyToCheck) {
try {
PackageManager pm = context.getPackageManager();
PackageInfo pi = pm.getPackageInfo(<your package name>, PackageManager.GET_SIGNATURES);
for (Signature sig : pi.signatures) {
MessageDigest sha = MessageDigest.getInstance("SHA-1");
sha.update(sig.toByteArray());
byte[] digest = sha.digest();
String str = "";
for (int di = 0; di < digest.length; di++) {
str += Byte.toString(digest[di]) + ":";
}
if (str.equals(keyToCheck)) {
return true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
keyToCheck的格式為“ -111:-31:91:-71:51:-11:71:6:-41:9:-91:71:6:81:3:41:21:-81:11: -1:“;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.