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 編碼版本。清單中所有新增項目的雜湊前置字元長度都相同。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 的第 4 版。V5 版有兩項重大改良:首先,Rice-delta 編碼現在可搭配長度超過 4 個位元組的雜湊前置字串使用;其次,編碼資料現在會視為大端序,以避免耗費資源的排序步驟。

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,
  "hashLength": enum (HashLength)
}
欄位
threatTypes[]

enum (ThreatType)

未排序的清單。如果不是空白,則表示雜湊清單是威脅清單,並列舉與這個雜湊清單中雜湊或雜湊前置字串相關聯的威脅類型。如果項目不代表威脅 (即代表可能是安全類型),則可能為空白。

likelySafeTypes[]

enum (LikelySafeType)

未排序的清單。如果不是空白,這表示雜湊清單代表可能安全的雜湊清單,並列舉這些雜湊被視為可能安全的方式。這個欄位與 threatTypes 欄位互斥。

description

string

這份清單的使用者可理解說明。以英文撰寫。

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 未指定長度。
FOUR_BYTES 每個雜湊都是四位元組的前置字元。
EIGHT_BYTES 每個雜湊都是八位元組的前置字串。
SIXTEEN_BYTES 每個雜湊都是十六位元組的前置字元。
THIRTY_TWO_BYTES 每個雜湊都是三十二位元組的完整雜湊。

方法

get

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