REST Resource: hashList

資源:HashList

以名稱識別的雜湊清單。

JSON 表示法
{
  "name": string,
  "version": string,
  "partialUpdate": boolean,
  "compressedRemovals": {
    object (RiceDeltaEncoded32Bit)
  },
  "minimumWaitDuration": string,
  "sha256Checksum": 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.
}
欄位
name

string

雜湊清單的名稱。請注意,全域快取也只是一個雜湊清單,可以在此處參照。

version

string (bytes format)

雜湊清單的版本。用戶端絕對不得操縱這些位元組。

Base64 編碼字串。

partialUpdate

boolean

如果為 true,則表示這是部分差異,包含根據用戶端已有內容所加入和移除的項目。如果為 false,則為完整的雜湊清單。

如果為 false,用戶端就必須刪除此雜湊清單的所有本機儲存版本。這表示用戶端擁有的版本嚴重過時,或是用戶端資料疑似損毀。compressedRemovals 欄位會是空白。

如果為 true,用戶端就必須先移除再新增,才能套用遞增更新。

compressedRemovals

object (RiceDeltaEncoded32Bit)

移除索引的 Rice-delta 編碼版本。由於每個雜湊清單的項目數量絕對少於 2^32,因此系統會將索引視為 32 位元整數並進行編碼。

minimumWaitDuration

string (Duration format)

用戶端至少要等待這麼久,才能再次取得雜湊清單。如果省略或為零,用戶端應立即擷取,因為這表示伺服器有其他更新要傳送給用戶端,但因用戶端指定的限制而無法傳送。

以秒為單位的時間長度,最多可有 9 個小數位數,並應以「s」結尾,例如:"3.5s"

sha256Checksum

string (bytes format)

經過排序的所有雜湊清單,並再次使用 SHA256 雜湊處理。這是在套用提供的更新後,資料庫中所有雜湊值排序清單的總和檢查碼。如果未提供任何更新,伺服器會略過這個欄位,表示用戶端應使用現有的總和檢查碼。

Base64 編碼字串。

metadata

object (HashListMetadata)

雜湊清單的中繼資料。這並非由 hashList.get 方法填入,而是由 ListHashLists 方法填入。

聯集欄位 compressed_additions。新增項目的 Rice-delta 編碼版本。新增項目的雜湊前置字串長度,在清單中的所有新增項目都相同。這個值可能是用戶端傳送的 desired_hash_length,也可能是伺服器選擇的值 (如果用戶端省略該欄位)。compressed_additions 只能是下列其中一項:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

4 個位元組的新增項目。

additionsEightBytes

object (RiceDeltaEncoded64Bit)

8 個位元組的附加項目。

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

16 位元組的附加項目。

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

32 位元組的新增項目。

RiceDeltaEncoded32Bit

Rice-Golomb 編碼資料。用於雜湊或移除索引。這可確保每個雜湊或索引的長度都相同,且長度恰好為 32 位元。

一般來說,如果我們依字典順序排序所有項目,會發現高階位元通常不會像低階位元那樣經常變更。也就是說,如果我們也計算項目之間的相鄰差異,較高階位元很可能會為零。這個方法會利用零值的高度機率,基本上會選擇特定位元數量;所有比這更重要的位元都可能為零,因此我們會使用單一編碼。請參閱 riceParameter 欄位。

歷史註解:Rice-delta 編碼首次用於此 API 的 V4 版。在 V5 中,我們做出了兩項重大改善:首先,現在可使用 Rice-delta 編碼,雜湊前置字串長度超過 4 個位元組;其次,現在會將已編碼資料視為 big-endian,以免進行耗時的排序步驟。

JSON 表示法
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
欄位
firstValue

integer (uint32 format)

編碼資料 (雜湊或索引) 中的第一個項目,或如果只編碼單一雜湊前置字元或索引,則為該項目的值。如果欄位為空白,則項目為零。

riceParameter

integer

Golomb-Rice 參數。這個參數保證會介於 3 到 30 (含頭尾) 之間。

entriesCount

integer

在已編碼資料中,差異編碼的項目數量。如果只編碼單一整數,這個值會設為零,而單一值會儲存在 firstValue 中。

encodedData

string (bytes format)

使用 Golomb-Rice 編碼器編碼的已編碼差異值。

Base64 編碼字串。

RiceDeltaEncoded64Bit

RiceDeltaEncoded32Bit 相同,但會對 64 位元數字進行編碼。

JSON 表示法
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
欄位
firstValue

string

編碼資料 (雜湊) 中的第一個項目,或如果只編碼單一雜湊前置字串,則為該項目的值。如果欄位為空白,則項目為零。

riceParameter

integer

Golomb-Rice 參數。這個參數保證會介於 35 到 62 之間 (含頭尾)。

entriesCount

integer

在已編碼資料中,差異編碼的項目數量。如果只編碼單一整數,這個值會設為零,而單一值會儲存在 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

在已編碼資料中,差異編碼的項目數量。如果只編碼單一整數,這個值會設為零,而單一值會儲存在 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

在已編碼資料中,差異編碼的項目數量。如果只編碼單一整數,這個值會設為零,而單一值會儲存在 firstValue 中。

encodedData

string (bytes format)

使用 Golomb-Rice 編碼器編碼的已編碼差異值。

Base64 編碼字串。

HashListMetadata

特定雜湊清單的中繼資料。

JSON 表示法
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "description": string,
  "supportedHashLengths": [
    enum (HashLength)
  ],
  "hashLength": enum (HashLength)
}
欄位
threatTypes[]

enum (ThreatType)

未排序的清單。如果不為空白,則表示雜湊清單是一種威脅清單,並列舉與此雜湊清單中的雜湊或雜湊前置字元相關的威脅類型。如果項目不代表威脅 (也就是代表可能安全的類型),則可能會留空。

likelySafeTypes[]

enum (LikelySafeType)

未排序的清單。如果不為空白,則表示雜湊清單代表一組可能安全的雜湊,並列舉這些雜湊可能安全的情況。此欄位與 threatTypes 欄位互斥。

description

string

這個清單的使用者可讀說明。以英文撰寫。

supportedHashLengths[]
(deprecated)

enum (HashLength)

此雜湊清單支援的雜湊長度。每個雜湊清單至少支援一個長度。因此這個欄位不會空白。

hashLength

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 每個雜湊都是八個位元組的字首。
SIXTEEN_BYTES 每個雜湊都是十六位元前置字串。
THIRTY_TWO_BYTES 每個雜湊都是 32 位元完整雜湊。

方法

get

取得雜湊清單的最新內容。