Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 计算设备上其他应用程序的哈希值_Android_Hash_Package_Md5_Sha1 - Fatal编程技术网

Android 计算设备上其他应用程序的哈希值

Android 计算设备上其他应用程序的哈希值,android,hash,package,md5,sha1,Android,Hash,Package,Md5,Sha1,我正在构建一个Android应用程序,需要跟踪设备上安装的一些其他应用程序 对于给定的应用程序(包),我需要计算哈希值,以便: 同一应用程序的不同版本的值不同 对于安装在不同设备上的同一应用程序的同一版本,该值相同 有没有一种有效的方法 谢谢只需将apk作为文件加载,并使用以下内容计算文件的MD5哈希值: public String md5(String s) { try { // Create MD5 Hash MessageDigest diges

我正在构建一个Android应用程序,需要跟踪设备上安装的一些其他应用程序

对于给定的应用程序(包),我需要计算哈希值,以便:

  • 同一应用程序的不同版本的值不同
  • 对于安装在不同设备上的同一应用程序的同一版本,该值相同
有没有一种有效的方法


谢谢

只需将apk作为文件加载,并使用以下内容计算文件的MD5哈希值:

public String md5(String s) {
    try {
        // Create MD5 Hash
        MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
        digest.update(s.getBytes());
        byte messageDigest[] = digest.digest();

        // Create Hex String
        StringBuffer hexString = new StringBuffer();
        for (int i=0; i<messageDigest.length; i++)
            hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
        return hexString.toString();

    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return "";
}
公共字符串md5(字符串s){
试一试{
//创建MD5散列
MessageDigest=java.security.MessageDigest.getInstance(“MD5”);
更新(s.getBytes());
字节messageDigest[]=digest.digest();
//创建十六进制字符串
StringBuffer hexString=新的StringBuffer();

对于(int i=0;i我的应用程序如何加载已经安装的应用程序的apk?即使您获得了执行此操作所需的权限,它也可能不满足第二个要求。您不需要打开应用程序,只需加载文件的二进制文件,尽管您可能需要root用户即可。那么,我的应用程序是否有办法访问ot的apk她在设备上的应用程序,没有根?