ApkChecksum的getValue()返回的字节数组的编码格式是什么?

问题描述 投票:0回答:1

从 API 级别 31 开始,android 的包管理器添加了 requestChecksums(),允许检索各种 apk 哈希值。这样,我们就可以得到一个

List<ApkChecksum>
;但是,ApkChecksum 的开发人员参考 很少记录 ApkChecksum 类。
getValue()
以字节数组 (byte[]) 的形式返回“校验和值”。并且不能为空。

但它没有说明返回的字节的编码/格式。正如 this SO post 所示,“你的字节数组必须有某种编码。”它指向 https://docs.oracle.com/en/java/javase/15/intl/supported-encodings.html#GUID-F8900850-51B5-4B8B-88C0-6186DF1C16B5 以获得数十个基本的列表仅包含在

java.base
模块中的编码集,更不用说开发人员可能选择使用的许多其他编码集。这些只是字符编码,而 ApkChecksum 返回的哈希值可能使用其他编码/格式来表示数字或大数字。

有谁知道 ApkChecksum 的

getValue()
返回的字节数组的编码是什么?

android hash checksum android-package-managers
1个回答
0
投票

我不是这个领域的专家,但据我所知校验和只是字节(而不是文本),所以它们不需要任何编码。

如果您的问题是如何解释字节,那么您可能需要查看报告的类型(例如TYPE_PARTIAL_MERKLE_ROOT_1M_SHA256): https://developer.android.com/reference/android/content/pm/ApkChecksum#getType()

文档有很多关于签名算法的细节。

© www.soinside.com 2019 - 2024. All rights reserved.