GoogleSQL for BigQuery supports the following hash functions.
Function list
| Name | Summary | 
|---|---|
| FARM_FINGERPRINT | Computes the fingerprint of a STRINGorBYTESvalue, using the FarmHash Fingerprint64 algorithm. | 
| MD5 | Computes the hash of a STRINGorBYTESvalue, using the MD5 algorithm. | 
| SHA1 | Computes the hash of a STRINGorBYTESvalue, using the SHA-1 algorithm. | 
| SHA256 | Computes the hash of a STRINGorBYTESvalue, using the SHA-256 algorithm. | 
| SHA512 | Computes the hash of a STRINGorBYTESvalue, using the SHA-512 algorithm. | 
FARM_FINGERPRINT
 FARM_FINGERPRINT(value) Description
Computes the fingerprint of the STRING or BYTES input using the Fingerprint64 function from the open-source FarmHash library. The output of this function for a particular input will never change.
Return type
INT64
Examples
WITH example AS (  SELECT 1 AS x, "foo" AS y, true AS z UNION ALL  SELECT 2 AS x, "apple" AS y, false AS z UNION ALL  SELECT 3 AS x, "" AS y, true AS z ) SELECT  *,  FARM_FINGERPRINT(CONCAT(CAST(x AS STRING), y, CAST(z AS STRING)))  AS row_fingerprint FROM example; /*---+-------+-------+----------------------*  | x | y | z | row_fingerprint |  +---+-------+-------+----------------------+  | 1 | foo | true | -1541654101129638711 |  | 2 | apple | false | 2794438866806483259 |  | 3 | | true | -4880158226897771312 |  *---+-------+-------+----------------------*/ MD5
 MD5(input) Description
Computes the hash of the input using the MD5 algorithm. The input can either be STRING or BYTES. The string version treats the input as an array of bytes.
This function returns 16 bytes.
Return type
BYTES
Example
SELECT MD5("Hello World") as md5; -- Note that the result of MD5 is of type BYTES, displayed as a base64-encoded string. /*--------------------------*  | md5 |  +--------------------------+  | sQqNsWTgdUEFt6mb5y4/5Q== |  *--------------------------*/ SHA1
 SHA1(input) Description
Computes the hash of the input using the SHA-1 algorithm. The input can either be STRING or BYTES. The string version treats the input as an array of bytes.
This function returns 20 bytes.
Return type
BYTES
Example
SELECT SHA1("Hello World") as sha1; -- Note that the result of SHA1 is of type BYTES, displayed as a base64-encoded string. /*------------------------------*  | sha1 |  +------------------------------+  | Ck1VqNd45QIvq3AZd8XYQLvEhtA= |  *------------------------------*/ SHA256
 SHA256(input) Description
Computes the hash of the input using the SHA-256 algorithm. The input can either be STRING or BYTES. The string version treats the input as an array of bytes.
This function returns 32 bytes.
Return type
BYTES
Example
SELECT SHA256("Hello World") as sha256; SHA512
 SHA512(input) Description
Computes the hash of the input using the SHA-512 algorithm. The input can either be STRING or BYTES. The string version treats the input as an array of bytes.
This function returns 64 bytes.
Return type
BYTES
Example
SELECT SHA512("Hello World") as sha512;