簡體   English   中英

unity3d android獲取keyhash運行時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM