REST Resource: hashList

Zasób: HashList

Lista skrótów z nazwą.

Zapis 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.
}
Pola
name

string

Nazwa listy skrótów. Pamiętaj, że pamięć podręczna globalna to też tylko lista skrótów, do której możesz się odwołać.

version

string (bytes format)

Wersja listy skrótów. Klient NIE MOŻE manipulować tymi bajtami.

Ciąg zakodowany w formacie Base64.

partialUpdate

boolean

Jeśli wartość to „true”, jest to częściowa różnica zawierająca dodatki i usunięcia na podstawie tego, co klient już ma. Jeśli wartość jest fałszywa, jest to pełna lista skrótów.

Jeśli wartość to „false”, klient MUSI usunąć każdą lokalnie przechowywaną wersję tej listy skrótów. Oznacza to, że wersja posiadana przez klienta jest bardzo nieaktualna lub dane klienta są prawdopodobnie uszkodzone. Pole compressedRemovals będzie puste.

Jeśli wartość to „true”, klient MUSI zastosować aktualizację przyrostową, usuwając elementy, a następnie dodając nowe.

compressedRemovals

object (RiceDeltaEncoded32Bit)

Wersja zakodowana za pomocą kodowania Rice-delta indeksów usuwania. Każda lista skrótów ma mniej niż 2^32 pozycji, więc indeksy są traktowane jako 32-bitowe liczby całkowite i kodowane.

minimumWaitDuration

string (Duration format)

Klienci powinni odczekać co najmniej tyle czasu, zanim ponownie pobiorą listę skrótów. Jeśli wartość jest pominięta lub wynosi zero, klient POWINIEN natychmiast pobrać dane, ponieważ oznacza to, że serwer ma dodatkową aktualizację do wysłania do klienta, ale nie może tego zrobić z powodu ograniczeń określonych przez klienta.

Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „s”. Przykład: "3.5s".

sha256Checksum

string (bytes format)

Posortowana lista wszystkich skrótów, ponownie zaszyfrowana za pomocą algorytmu SHA256. Jest to suma kontrolna posortowanej listy wszystkich skrótów obecnych w bazie danych po zastosowaniu podanej aktualizacji. Jeśli nie podano żadnych aktualizacji, serwer pominie to pole, aby wskazać, że klient powinien użyć istniejącej sumy kontrolnej.

Ciąg zakodowany w formacie Base64.

metadata

object (HashListMetadata)

Metadane dotyczące listy skrótów. Nie jest wypełniane przez metodę hashList.get, ale jest wypełniane przez metodę ListHashLists.

Pole zbiorcze compressed_additions. Wersja dodatków zakodowana za pomocą kodowania Rice-delta. Długości prefiksów skrótu w przypadku dodatków są jednolite we wszystkich dodatkach na liście. compressed_additions może mieć tylko jedną z tych wartości:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

4-bajtowe dodatki.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

8-bajtowe dodatki.

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

16-bajtowe dodatki.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

32-bajtowe dodatki.

RiceDeltaEncoded32Bit

Dane zakodowane algorytmem Rice-Golomb. Używane w przypadku skrótów lub indeksów usuwania. Każdy skrót lub indeks ma tutaj taką samą długość, która wynosi dokładnie 32 bity.

Ogólnie rzecz biorąc, jeśli posortujemy wszystkie wpisy leksykograficznie, zauważymy, że bity wyższego rzędu zmieniają się rzadziej niż bity niższego rzędu. Oznacza to, że jeśli weźmiemy też sąsiednią różnicę między wpisami, bity wyższego rzędu będą z dużym prawdopodobieństwem zerowe. Wykorzystuje to wysokie prawdopodobieństwo zera, wybierając określoną liczbę bitów. Wszystkie bity o większym znaczeniu niż ta liczba są prawdopodobnie zerami, więc używamy kodowania unarnego. Sprawdź pole riceParameter.

Uwaga historyczna: kodowanie Rice-delta zostało po raz pierwszy użyte w interfejsie API w wersji 4. W wersji 5 wprowadzono 2 istotne ulepszenia: po pierwsze, kodowanie Rice-delta jest teraz dostępne z prefiksami skrótu dłuższymi niż 4 bajty; po drugie, zakodowane dane są teraz traktowane jako big-endian, aby uniknąć kosztownego kroku sortowania.

Zapis JSON
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Pola
firstValue

integer (uint32 format)

Pierwszy wpis w zakodowanych danych (skróty lub indeksy) lub, jeśli zakodowano tylko jeden prefiks skrótu lub indeks, wartość tego wpisu. Jeśli pole jest puste, wpis ma wartość zero.

riceParameter

integer

Parametr Golomba-Rice’a. Ten parametr musi mieć wartość z przedziału od 3 do 30 włącznie.

entriesCount

integer

Liczba wpisów, które są zakodowane w danych zakodowanych za pomocą kodowania różnicowego. Jeśli zakodowano tylko jedną liczbę całkowitą, ta wartość będzie wynosić zero, a pojedyncza wartość będzie przechowywana w firstValue.

encodedData

string (bytes format)

Zakodowane różnice, które są kodowane za pomocą kodera Golomba-Rice’a.

Ciąg zakodowany w formacie Base64.

RiceDeltaEncoded64Bit

Tak samo jak RiceDeltaEncoded32Bit, z tym że koduje liczby 64-bitowe.

Zapis JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Pola
firstValue

string

Pierwszy wpis w zakodowanych danych (skrótach) lub, jeśli zakodowano tylko 1 prefiks skrótu, wartość tego wpisu. Jeśli pole jest puste, wpis ma wartość zero.

riceParameter

integer

Parametr Golomba-Rice’a. Wartość tego parametru musi mieścić się w przedziale od 35 do 62 włącznie.

entriesCount

integer

Liczba wpisów, które są zakodowane w danych zakodowanych za pomocą kodowania różnicowego. Jeśli zakodowano tylko jedną liczbę całkowitą, ta wartość będzie wynosić zero, a pojedyncza wartość będzie przechowywana w firstValue.

encodedData

string (bytes format)

Zakodowane różnice, które są kodowane za pomocą kodera Golomba-Rice’a.

Ciąg zakodowany w formacie Base64.

RiceDeltaEncoded128Bit

Tak samo jak RiceDeltaEncoded32Bit, z tym że koduje liczby 128-bitowe.

Zapis JSON
{
  "firstValueHi": string,
  "firstValueLo": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Pola
firstValueHi

string

64 bity wyższego rzędu pierwszego wpisu w zakodowanych danych (haszach). Jeśli pole jest puste, górne 64 bity są zerowe.

firstValueLo

string (uint64 format)

Dolne 64 bity pierwszego wpisu w zakodowanych danych (haszach). Jeśli pole jest puste, dolne 64 bity są zerowe.

riceParameter

integer

Parametr Golomba-Rice’a. Ten parametr na pewno będzie mieścić się w przedziale od 99 do 126 włącznie.

entriesCount

integer

Liczba wpisów, które są zakodowane w danych zakodowanych za pomocą kodowania różnicowego. Jeśli zakodowano tylko jedną liczbę całkowitą, ta wartość będzie wynosić zero, a pojedyncza wartość będzie przechowywana w firstValue.

encodedData

string (bytes format)

Zakodowane różnice, które są kodowane za pomocą kodera Golomba-Rice’a.

Ciąg zakodowany w formacie Base64.

RiceDeltaEncoded256Bit

Podobnie jak RiceDeltaEncoded32Bit, z tym że koduje liczby 256-bitowe.

Zapis JSON
{
  "firstValueFirstPart": string,
  "firstValueSecondPart": string,
  "firstValueThirdPart": string,
  "firstValueFourthPart": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Pola
firstValueFirstPart

string

Pierwsze 64 bity pierwszego wpisu w zakodowanych danych (haszach). Jeśli pole jest puste, pierwsze 64 bity mają wartość zero.

firstValueSecondPart

string (uint64 format)

Bity od 65 do 128 pierwszego wpisu w zakodowanych danych (haszach). Jeśli pole jest puste, bity od 65 do 128 są zerami.

firstValueThirdPart

string (uint64 format)

Bity od 129 do 192 pierwszego wpisu w zakodowanych danych (haszach). Jeśli pole jest puste, bity od 129 do 192 mają wartość zero.

firstValueFourthPart

string (uint64 format)

Ostatnie 64 bity pierwszego wpisu w zakodowanych danych (haszach). Jeśli pole jest puste, ostatnie 64 bity są zerami.

riceParameter

integer

Parametr Golomba-Rice’a. Wartość tego parametru musi mieścić się w przedziale od 227 do 254 włącznie.

entriesCount

integer

Liczba wpisów, które są zakodowane w danych zakodowanych za pomocą kodowania różnicowego. Jeśli zakodowano tylko jedną liczbę całkowitą, ta wartość będzie wynosić zero, a pojedyncza wartość będzie przechowywana w firstValue.

encodedData

string (bytes format)

Zakodowane różnice, które są kodowane za pomocą kodera Golomba-Rice’a.

Ciąg zakodowany w formacie Base64.

HashListMetadata

Metadane dotyczące konkretnej listy skrótów.

Zapis JSON
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "description": string,
  "hashLength": enum (HashLength)
}
Pola
threatTypes[]

enum (ThreatType)

Lista nieuporządkowana. Jeśli ta lista nie jest pusta, oznacza to, że lista skrótów jest rodzajem listy zagrożeń, a ta lista zawiera rodzaje zagrożeń powiązanych ze skrótami lub prefiksami skrótów na tej liście. Może być puste, jeśli wpis nie stanowi zagrożenia, np. w przypadku, gdy reprezentuje prawdopodobnie bezpieczny typ.

likelySafeTypes[]

enum (LikelySafeType)

Lista nieuporządkowana. Jeśli nie jest pusta, oznacza to, że lista skrótów reprezentuje listę prawdopodobnie bezpiecznych skrótów, a to wylicza sposoby, w jakie są one uważane za prawdopodobnie bezpieczne. To pole wyklucza się z polem threatTypes.

description

string

Zrozumiały dla człowieka opis tej listy. musi być napisana w języku angielskim;

hashLength

enum (HashLength)

Długość obsługiwanego skrótu na tej liście skrótów. Każda lista skrótów będzie obsługiwać tylko jedną długość. Jeśli dla tego samego zestawu typów zagrożeń lub typów bezpiecznych zostanie wprowadzona inna długość skrótu, zostanie ona wprowadzona jako osobna lista z odrębną nazwą i odpowiednią długością skrótu.

ThreatType

Rodzaje zagrożeń.

Wartości w polu enum
THREAT_TYPE_UNSPECIFIED Nieznany typ zagrożenia. Jeśli serwer zwróci ten kod, klient całkowicie zignoruje otaczający go znak FullHashDetail.
MALWARE

Typ zagrożenia złośliwym oprogramowaniem. Termin „złośliwe oprogramowanie” odnosi się do programów komputerowych lub aplikacji mobilnych zaprojektowanych specjalnie w celu zaszkodzenia użytkownikom lub zakłócania pracy komputera, urządzenia mobilnego bądź zainstalowanych na nim aplikacji. Działanie złośliwego oprogramowania objawia się instalowaniem programów bez zgody użytkownika lub instalowaniem szkodliwych aplikacji, np. wirusów.

Więcej informacji znajdziesz tutaj.

SOCIAL_ENGINEERING

Typ zagrożenia związanego z inżynierią społeczną. Strony wykorzystujące inżynierię społeczną fałszywie twierdzą, że działają w imieniu osoby trzeciej, aby nakłonić widzów do wykonania czynności, które wykonaliby tylko na prośbę prawdziwego przedstawiciela tej osoby. Phishing to rodzaj inżynierii społecznej, która podstępem nakłania użytkownika do wykonania określonej czynności, np. podania informacji takich jak dane logowania.

Więcej informacji znajdziesz tutaj.

UNWANTED_SOFTWARE Rodzaj zagrożenia związanego z niechcianym oprogramowaniem. Niechciane oprogramowanie to oprogramowanie, które nie jest zgodne z zasadami Google dotyczącymi oprogramowania, ale nie jest złośliwym oprogramowaniem.
POTENTIALLY_HARMFUL_APPLICATION Rodzaj zagrożenia związanego z potencjalnie szkodliwą aplikacją używany przez Google Play Protect w Sklepie Play.

LikelySafeType

Typy prawdopodobnie bezpiecznych witryn.

Zwróć uwagę, że SearchHashesResponse celowo nie zawiera LikelySafeType.

Wartości w polu enum
LIKELY_SAFE_TYPE_UNSPECIFIED Brak informacji.
GENERAL_BROWSING Ta witryna jest prawdopodobnie wystarczająco bezpieczna do ogólnego przeglądania. Jest to też nazywane pamięcią podręczną globalną.
CSD Ta witryna jest prawdopodobnie wystarczająco bezpieczna, więc nie trzeba uruchamiać modeli wykrywania po stronie klienta ani sprawdzać ochrony hasłem.
DOWNLOAD Ta strona jest prawdopodobnie wystarczająco bezpieczna, aby nie trzeba było sprawdzać pobieranych z niej plików.

HashLength

Długość skrótów na liście skrótów.

Wartości w polu enum
HASH_LENGTH_UNSPECIFIED Nieokreślona długość.
FOUR_BYTES Każdy skrót to 4-bajtowy prefiks.
EIGHT_BYTES Każdy skrót to 8-bajtowy prefiks.
SIXTEEN_BYTES Każdy skrót to 16-bajtowy prefiks.
THIRTY_TWO_BYTES Każdy skrót to 32-bajtowy pełny skrót.

Metody

get

Pobiera najnowszą zawartość listy skrótów.