REST Resource: hashList

资源:HashList

由名称标识的哈希列表。

JSON 表示法
{
  "name": string,
  "version": string,
  "partialUpdate": boolean,
  "compressedRemovals": {
    object (RiceDeltaEncoded32Bit)
  },
  "minimumWaitDuration": string,
  "metadata": {
    object (HashListMetadata)
  },

  // Union field compressed_additions can be only one of the following:
  "additionsFourBytes": {
    object (RiceDeltaEncoded32Bit)
  },
  "additionsEightBytes": {
    object (RiceDeltaEncoded64Bit)
  },
  "additionsSixteenBytes": {
    object (RiceDeltaEncoded128Bit)
  },
  "additionsThirtyTwoBytes": {
    object (RiceDeltaEncoded256Bit)
  }
  // End of list of possible types for union field compressed_additions.

  // Union field checksum can be only one of the following:
  "sha256Checksum": string
  // End of list of possible types for union field checksum.
}
字段
name

string

哈希列表的名称。请注意,全局缓存也只是一个哈希列表,可以在此处引用。

version

string (bytes format)

哈希列表的版本。客户端不得操纵这些字节。

使用 base64 编码的字符串。

partialUpdate

boolean

如果为 true,则是部分差异,其中包含基于客户端已有内容的添加和移除。如果为 false,则这是完整的哈希列表。

如果为 false,客户端必须删除此哈希列表的所有本地存储版本。这表示客户端所拥有的版本严重过时,或者认为客户端数据已损坏。compressedRemovals 字段将为空。

为 true 时,客户端必须依次应用移除和添加来应用增量更新。

compressedRemovals

object (RiceDeltaEncoded32Bit)

移除索引的大米增量编码版本。由于每个哈希列表肯定少于 2^32 个条目,因此索引将被视为 32 位整数并进行了编码。

minimumWaitDuration

string (Duration format)

客户端应至少等待这么长的时间才能再次获取哈希列表。如果省略或为零,客户端应立即提取,因为它表示服务器有其他更新要发送到客户端,但由于客户端指定的限制条件而无法接收。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

metadata

object (HashListMetadata)

关于哈希列表的元数据。此标识符不是由 hashList.get 方法填充的,而是由 ListHashLists 方法填充的。

联合字段 compressed_additions。加法的大米增量编码版本。所有加法项的哈希前缀长度都是一致的列表中的所有加法项。该字段要么是客户端发送的 desired_hash_length,要么是服务器选择的值(如果客户端省略了该字段)。compressed_additions 只能是下列其中一项:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

4 字节加法运算。

additionsEightBytes

object (RiceDeltaEncoded64Bit)

8 字节加法。

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

16 字节加法。

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

32 字节加法。

联合字段 checksum。这是应用提供的更新后,数据库中存在的所有哈希的已排序列表的校验和。这是“其中之一”字段以允许使用多个哈希算法。服务器也可以省略此字段(在未提供更新的情况下),以指示客户端应使用现有校验和。checksum 只能是下列其中一项:
sha256Checksum

string (bytes format)

所有哈希的已排序列表,使用 SHA256 再次进行哈希处理。

使用 base64 编码的字符串。

RiceDeltaEncoded32Bit

Rice-Golomb 编码的数据。用于哈希或移除索引。可以保证此处的每个哈希或索引具有相同的长度,并且该长度恰好为 32 位。

一般来说,如果我们按字典顺序对所有条目进行排序,会发现高阶位的变化频率往往不如低阶位。这意味着,如果加上各条目之间的相邻差值,则高阶位的概率较高,可能为零。这实质上是选择了特定数量的位数,从而充分利用了这种可能性为零的概率;所有有效位可能为零,因此我们使用一元编码。请参阅 riceParameter 字段。

历史备注:Rice-delta 编码首次用于此 API 的 V4 版。V5 进行了两项重大改进:首先,Rice-delta 编码现在提供长度超过 4 个字节的哈希前缀;其次,编码数据现在被视为大端序,以避免成本高昂的排序步骤。

JSON 表示法
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
字段
firstValue

integer (uint32 format)

编码数据中的第一个条目(哈希或索引),或者,如果仅对单个哈希前缀或索引进行编码,则为相应条目的值。如果此字段为空,则条目为零。

riceParameter

integer

Golomb-Rice 参数。此参数必定介于 3 和 30 之间(含 3 和 30)。

entriesCount

integer

在编码数据中采用增量编码的条目数。如果只对单个整数进行编码,则此值为 0,并且单个值将存储在 firstValue 中。

encodedData

string (bytes format)

使用 Golomb-Rice 编码器进行编码的编码增量。

使用 base64 编码的字符串。

RiceDeltaEncoded64 位

RiceDeltaEncoded32Bit 相同,只不过它编码的是 64 位数字。

JSON 表示法
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
字段
firstValue

string

编码数据中的第一个条目(哈希),或者,如果只对一个哈希前缀进行编码,则为该条目的值。如果此字段为空,则条目为零。

riceParameter

integer

Golomb-Rice 参数。此参数必定介于 35 和 62 之间(含边界值)。

entriesCount

integer

在编码数据中采用增量编码的条目数。如果只对单个整数进行编码,则此值为 0,并且单个值将存储在 firstValue 中。

encodedData

string (bytes format)

使用 Golomb-Rice 编码器进行编码的编码增量。

使用 base64 编码的字符串。

RiceDeltaEncoded128Bit

RiceDeltaEncoded32Bit 相同,只不过它编码的是 128 位数字。

JSON 表示法
{
  "firstValueHi": string,
  "firstValueLo": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
字段
firstValueHi

string

编码数据(哈希)中第一个条目的高 64 位。如果该字段为空,则高 64 位全部为零。

firstValueLo

string (uint64 format)

编码数据(哈希)中第一个条目的低 64 位。如果该字段为空,则较低的 64 位全部为零。

riceParameter

integer

Golomb-Rice 参数。此参数必定介于 99 和 126 之间(含边界值)。

entriesCount

integer

在编码数据中采用增量编码的条目数。如果只对单个整数进行编码,则此值为 0,并且单个值将存储在 firstValue 中。

encodedData

string (bytes format)

使用 Golomb-Rice 编码器进行编码的编码增量。

使用 base64 编码的字符串。

RiceDeltaEncoded256Bit

RiceDeltaEncoded32Bit 相同,只不过它编码的是 256 位数字。

JSON 表示法
{
  "firstValueFirstPart": string,
  "firstValueSecondPart": string,
  "firstValueThirdPart": string,
  "firstValueFourthPart": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
字段
firstValueFirstPart

string

编码数据中第一个条目的前 64 位(哈希)。如果该字段为空,则前 64 位全部为零。

firstValueSecondPart

string (uint64 format)

编码数据(哈希)中第一个条目的 65 位到 128 位。如果该字段为空,则第 65 位到第 128 位均为零。

firstValueThirdPart

string (uint64 format)

编码数据(哈希)中第一个条目的第 129 位到第 192 位。如果该字段为空,则第 129 位到第 192 位均为零。

firstValueFourthPart

string (uint64 format)

编码数据(哈希)中第一个条目的最后 64 位。如果该字段为空,则最后 64 位全部为零。

riceParameter

integer

Golomb-Rice 参数。此参数必定介于 227 和 254 之间(含边界值)。

entriesCount

integer

在编码数据中采用增量编码的条目数。如果只对单个整数进行编码,则此值为 0,并且单个值将存储在 firstValue 中。

encodedData

string (bytes format)

使用 Golomb-Rice 编码器进行编码的编码增量。

使用 base64 编码的字符串。

HashListMetadata

有关特定哈希列表的元数据。

JSON 表示法
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "mobileOptimized": boolean,
  "description": string,
  "supportedHashLengths": [
    enum (HashLength)
  ]
}
字段
threatTypes[]

enum (ThreatType)

无序列表。如果不为空,则表示哈希列表是一种威胁列表,并枚举了与此哈希列表中的哈希或哈希前缀相关联的威胁类型。如果条目不代表威胁(例如,如果它表示可能安全的类型),则为空。

likelySafeTypes[]

enum (LikelySafeType)

无序列表。如果不为空,则表示该哈希列表表示可能安全的哈希列表,并枚举这些哈希被认为可能安全的方式。此字段与威胁类型字段互斥。

mobileOptimized

boolean

此列表是否针对移动设备(Android 和 iOS)进行了优化。

description

string

有关此列表的直观易懂的说明。用英语编写。

supportedHashLengths[]

enum (HashLength)

此哈希列表支持的哈希长度。每个哈希列表至少支持一个长度。因此,此字段不会为空。

ThreatType

威胁类型。

枚举
THREAT_TYPE_UNSPECIFIED 未知威胁类型。如果服务器返回了此属性,客户端应完全忽略封装的 FullHashDetail
MALWARE

恶意软件威胁类型。恶意软件是指符合以下特征的所有软件或移动应用:蓄意危害计算机、移动设备、计算机/移动设备上运行的软件或计算机/移动设备用户。恶意软件会表现出各种恶意行为,其中包括:未经用户同意就擅自安装软件,以及安装病毒等有害软件。

如需了解详情,请参阅此处

SOCIAL_ENGINEERING

社会工程学威胁类型。社交工程网页谎称会代表第三方行事,意图诱使观看者执行某些操作,使观看者仅信任第三方的真正代理。钓鱼式攻击是一种社会工程学攻击,会诱使观看者执行特定操作来提供信息(例如登录凭据)。

如需了解详情,请参阅此处

UNWANTED_SOFTWARE 垃圾软件威胁类型。垃圾软件是指任何不符合 Google 软件准则的软件,但并非恶意软件。
POTENTIALLY_HARMFUL_APPLICATION Google Play 保护机制为 Play 商店使用的可能有害的应用威胁类型。

LikelySafeType

可能安全的网站类型。

请注意,SearchHashesResponse 有意不包含 LikelySafeType

枚举
LIKELY_SAFE_TYPE_UNSPECIFIED 未知。
GENERAL_BROWSING 此网站可能足够安全,适合进行一般浏览。这也称为全局缓存。
CSD 此网站很可能足够安全,不需要运行客户端检测模型或密码保护检查。
DOWNLOAD 此网站很可能足够安全,无需检查从该网站下载的内容。

HashLength

哈希列表中哈希的长度。

枚举
HASH_LENGTH_UNSPECIFIED 未指定长度。服务器不会在对客户端的响应中返回此值(在 supportedHashLengths 字段中),但允许客户端向服务器发送此值(在 desiredHashLength 字段中),在这种情况下,服务器将自动选择一个值。客户端应让服务器选择一个值。
FOUR_BYTES 每个哈希都是一个四字节前缀。
EIGHT_BYTES 每个哈希都是一个 8 字节的前缀。
SIXTEEN_BYTES 每个哈希都是一个 16 字节的前缀。
THIRTY_TWO_BYTES 每个哈希都是 32 字节的全哈希。

方法

get

获取哈希列表的最新内容。