REST Resource: 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

सही होने पर, यह एक आंशिक अंतर होता है. इसमें क्लाइंट की पहले से मिली जानकारी के आधार पर कुछ नई चीज़ें जोड़ी और हटाई जाती हैं. गलत होने पर, यह पूरी हैश सूची होती है.

गलत होने पर, क्लाइंट को इस हैश सूची के लिए स्थानीय तौर पर सेव किए गए किसी भी वर्शन को मिटाना होगा. इसका मतलब है कि क्लाइंट के पास मौजूद वर्शन पुराना है या क्लाइंट के डेटा को खराब माना जाता है. compressedRemovals फ़ील्ड खाली होगा.

सही होने पर, क्लाइंट को इंक्रीमेंटल अपडेट लागू करने के लिए पहले हटाना होगा और उसके बाद कुछ जोड़ना होगा.

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 कोड में बदली गई स्ट्रिंग.

राइसडेल्टाएन्कोडेड32बिट

राइस-गोलोम कोड में बदला गया डेटा. इसका इस्तेमाल हैश या हटाए जाने वाले इंडेक्स के लिए किया जाता है. इस बात की गारंटी है कि यहां मौजूद हर हैश या इंडेक्स की लंबाई एक जैसी है. साथ ही, यह लंबाई ठीक 32 बिट है.

आम तौर पर, अगर हम सभी एंट्री को लेक्सिकोग्राफ़िक तरीके से क्रम से लगाते हैं, तो हम पाएंगे कि ज़्यादा ऑर्डर बिट के मुकाबले कम ऑर्डर बिट में बार-बार बदलाव नहीं होता. इसका मतलब है कि अगर हम एंट्री के बीच के अंतर को भी शामिल करते हैं, तो ज़्यादा ऑर्डर बिट के शून्य होने की संभावना ज़्यादा होती है. यह सुविधा, बिट की एक तय संख्या चुनकर, शून्य की इस संभावना का इस्तेमाल करती है; इससे ज़्यादा अहम सभी बिट की संभावना शून्य हो सकती है, इसलिए हम यूनरी एन्कोडिंग का इस्तेमाल करते हैं. riceParameter फ़ील्ड देखें.

पुराना नोट: राइस-डेल्टा एन्कोडिंग का इस्तेमाल सबसे पहले इस एपीआई के वर्शन 4 में किया गया था. V5 में, दो अहम सुधार किए गए हैं: पहला, राइस-डेल्टा एन्कोडिंग अब चार बाइट से लंबे हैश प्रीफ़िक्स के साथ उपलब्ध है; दूसरी वजह, कोड में बदले गए डेटा को अब बिग-एंडियन माना जाता है, ताकि क्रम से लगाने के महंगे चरण से बचा जा सके.

JSON के काेड में दिखाना
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
फ़ील्ड
firstValue

integer (uint32 format)

कोड में बदले गए डेटा (हैश या इंडेक्स) में पहली एंट्री या अगर सिर्फ़ एक हैश प्रीफ़िक्स या इंडेक्स को कोड में बदला गया था, तो उस एंट्री की वैल्यू. अगर यह फ़ील्ड खाली है, तो एंट्री शून्य होती है.

riceParameter

integer

गोलोंब-राइस पैरामीटर. इस पैरामीटर के 3 से 30 के बीच होने की गारंटी है.

entriesCount

integer

कोड में बदले गए डेटा में डेल्टा के कोड में बदली गई एंट्री की संख्या. अगर सिर्फ़ एक पूर्णांक को कोड में बदला गया था, तो यह शून्य होगा और एक वैल्यू firstValue में सेव की जाएगी.

encodedData

string (bytes format)

कोड में बदले गए डेल्टा, जिन्हें गोलोंब-राइस कोडर की मदद से कोड में बदला जाता है.

base64 कोड में बदली गई स्ट्रिंग.

राइसडेल्टाएन्कोडेड64बिट

RiceDeltaEncoded32Bit के जैसा ही होता है. हालांकि, इसमें 64-बिट नंबर को कोड में बदलने का विकल्प मौजूद होता है.

JSON के काेड में दिखाना
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
फ़ील्ड
firstValue

string

कोड में बदले गए डेटा (हैश) में पहली एंट्री या अगर सिर्फ़ एक हैश प्रीफ़िक्स को कोड में बदला गया था, तो उस एंट्री की वैल्यू. अगर यह फ़ील्ड खाली है, तो एंट्री शून्य होती है.

riceParameter

integer

गोलोंब-राइस पैरामीटर. इस पैरामीटर के 35 से 62 के बीच होने की गारंटी है.

entriesCount

integer

कोड में बदले गए डेटा में डेल्टा के कोड में बदली गई एंट्री की संख्या. अगर सिर्फ़ एक पूर्णांक को कोड में बदला गया था, तो यह शून्य होगा और एक वैल्यू firstValue में सेव की जाएगी.

encodedData

string (bytes format)

कोड में बदले गए डेल्टा, जिन्हें गोलोंब-राइस कोडर की मदद से कोड में बदला जाता है.

base64 कोड में बदली गई स्ट्रिंग.

राइसडेल्टेएनकोड किया गया128बिट

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

गोलोंब-राइस पैरामीटर. इस पैरामीटर के 99 से 126 के बीच होने की गारंटी है. इसमें ये भी शामिल हैं.

entriesCount

integer

कोड में बदले गए डेटा में डेल्टा के कोड में बदली गई एंट्री की संख्या. अगर सिर्फ़ एक पूर्णांक को कोड में बदला गया था, तो यह शून्य होगा और एक वैल्यू firstValue में सेव की जाएगी.

encodedData

string (bytes format)

कोड में बदले गए डेल्टा, जिन्हें गोलोंब-राइस कोडर की मदद से कोड में बदला जाता है.

base64 कोड में बदली गई स्ट्रिंग.

RiceDeltaEncode256 बिट

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

गोलोंब-राइस पैरामीटर. इस पैरामीटर के 227 और 254 के बीच होने की गारंटी है.

entriesCount

integer

कोड में बदले गए डेटा में डेल्टा के कोड में बदली गई एंट्री की संख्या. अगर सिर्फ़ एक पूर्णांक को कोड में बदला गया था, तो यह शून्य होगा और एक वैल्यू firstValue में सेव की जाएगी.

encodedData

string (bytes format)

कोड में बदले गए डेल्टा, जिन्हें गोलोंब-राइस कोडर की मदद से कोड में बदला जाता है.

base64 कोड में बदली गई स्ट्रिंग.

HashListMetadata

किसी हैश सूची का मेटाडेटा.

JSON के काेड में दिखाना
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "mobileOptimized": boolean,
  "description": string,
  "supportedHashLengths": [
    enum (HashLength)
  ]
}
फ़ील्ड
threatTypes[]

enum (ThreatType)

बिना क्रम वाली सूची. अगर यह सूची खाली नहीं है, तो इससे पता चलता है कि हैश सूची एक तरह की खतरे की सूची है. साथ ही, यह हैश सूची में हैश या हैश प्रीफ़िक्स से जुड़े खतरों की गिनती करती है. अगर एंट्री से किसी को कोई खतरा न हो, तो खाली हो सकता है. जैसे, इस मामले में यह जानकारी सुरक्षित हो सकती है.

likelySafeTypes[]

enum (LikelySafeType)

बिना क्रम वाली सूची. अगर यह खाली नहीं है, तो इससे पता चलता है कि हैश सूची संभावित सुरक्षित हैश की सूची दिखाती है. साथ ही, यह उन तरीकों की गिनती करता है जिन्हें सुरक्षित माना जाता है. यह फ़ील्ड, accountTypes फ़ील्ड के साथ म्यूचुअली एक्सक्लूसिव है.

mobileOptimized

boolean

यह सूची मोबाइल डिवाइसों (Android और iOS) के लिए ऑप्टिमाइज़ की गई है या नहीं.

description

string

इस सूची के बारे में ऐसा ब्यौरा जिसे कोई भी व्यक्ति आसानी से पढ़ सके. यह अंग्रेज़ी में लिखा गया है.

supportedHashLengths[]

enum (HashLength)

इस हैश सूची के लिए इस्तेमाल की जा सकने वाली हैश की लंबाई. हर हैश सूची कम से कम एक लंबाई के साथ काम करेगी. इसलिए, यह फ़ील्ड खाली नहीं होगा.

ThreatType

खतरों के टाइप.

Enums
THREAT_TYPE_UNSPECIFIED खतरे के टाइप की जानकारी नहीं है. अगर सर्वर इसे दिखाता है, तो क्लाइंट FullHashDetail को पूरी तरह से अनदेखा कर देगा.
MALWARE

मैलवेयर का खतरा. मैलवेयर एक तरह का सॉफ़्टवेयर या मोबाइल ऐप्लिकेशन होता है. इसे खास तौर पर किसी कंप्यूटर, मोबाइल डिवाइस, उन पर इस्तेमाल किए जा रहे सॉफ़्टवेयर या उनके उपयोगकर्ताओं को नुकसान पहुंचाने के लिए बनाया जाता है. मैलवेयर से उपयोगकर्ता को नुकसान पहुंचाने वाली गतिविधियां की जाती हैं. इसमें उपयोगकर्ता की सहमति के बिना सॉफ़्टवेयर इंस्टॉल करने और वायरस जैसे नुकसान पहुंचाने वाले सॉफ़्टवेयर इंस्टॉल करने जैसी गतिविधियां शामिल हो सकती हैं.

इस बारे में ज़्यादा जानकारी यहां मिल सकती है.

SOCIAL_ENGINEERING

सोशल इंजीनियरिंग से जुड़े खतरे का टाइप. सोशल इंजीनियरिंग वाले पेजों को झूठा दावा करके, किसी तीसरे पक्ष की ओर से ऐसा करने का झूठा दावा करना चाहिए. ये ऐसे पेज होते हैं जिनका मकसद दर्शकों को ऐसी कार्रवाई करने के लिए बहकाना होता है जिससे दर्शक तीसरे पक्ष के किसी सही एजेंट पर ही भरोसा कर सकें. फ़िशिंग, सोशल इंजीनियरिंग का एक ऐसा टाइप है जो दर्शकों से धोखे से लॉगिन क्रेडेंशियल जैसी जानकारी देने का काम करता है.

इस बारे में ज़्यादा जानकारी यहां मिल सकती है.

UNWANTED_SOFTWARE अनचाहा सॉफ़्टवेयर से जुड़ा खतरा. अनचाहा सॉफ़्टवेयर, ऐसा सॉफ़्टवेयर होता है जो Google के सॉफ़्टवेयर सिद्धांतों का पालन नहीं करता, लेकिन मैलवेयर नहीं होता.
POTENTIALLY_HARMFUL_APPLICATION Play Store के लिए Google Play Protect में इस्तेमाल किया गया, नुकसान पहुंचा सकने वाले ऐप्लिकेशन का खतरा.

LikelySafeType

वे साइटें जो शायद सुरक्षित न हों.

ध्यान दें कि SearchHashesResponse में जान-बूझकर LikelySafeType शामिल नहीं किया गया है.

Enums
LIKELY_SAFE_TYPE_UNSPECIFIED अज्ञात.
GENERAL_BROWSING यह साइट सामान्य ब्राउज़िंग के लिए शायद सुरक्षित है. इसे ग्लोबल कैश मेमोरी के नाम से भी जाना जाता है.
CSD यह साइट पूरी तरह से सुरक्षित है. इसलिए, इसे क्लाइंट-साइड डिटेक्शन मॉडल या पासवर्ड की सुरक्षा से जुड़ी जांच करने की ज़रूरत नहीं पड़ती.
DOWNLOAD यह साइट पूरी तरह से सुरक्षित है. इसलिए, इस साइट से डाउनलोड किए गए कॉन्टेंट की जांच करने की ज़रूरत नहीं है.

HashLength

हैश सूची में हैश की लंबाई.

Enums
HASH_LENGTH_UNSPECIFIED लंबाई की जानकारी नहीं है. सर्वर, क्लाइंट के दिए गए जवाबों में (supportedHashLengths फ़ील्ड में) इस वैल्यू को नहीं दिखाएगा. हालांकि, क्लाइंट को सर्वर पर (desiredHashLength फ़ील्ड में) यह वैल्यू भेजने की अनुमति है. इस स्थिति में सर्वर अपने-आप कोई वैल्यू चुनेगा. क्लाइंट को सर्वर को कोई वैल्यू चुनने की अनुमति देनी चाहिए.
FOUR_BYTES हर हैश एक चार बाइट प्रीफ़िक्स होता है.
EIGHT_BYTES हर हैश आठ-बाइट वाला प्रीफ़िक्स होता है.
SIXTEEN_BYTES हर हैश सोलह-बाइट प्रीफ़िक्स होता है.
THIRTY_TWO_BYTES हर हैश बत्तीस बाइट वाला पूरा हैश होता है.

तरीके

get

हैश सूची का नया कॉन्टेंट पाएं.