Hash functions

GoogleSQL for BigQuery supports the following hash functions.

Function list

Name Summary
FARM_FINGERPRINT Computes the fingerprint of a STRING or BYTES value, using the FarmHash Fingerprint64 algorithm.
MD5 Computes the hash of a STRING or BYTES value, using the MD5 algorithm.
SHA1 Computes the hash of a STRING or BYTES value, using the SHA-1 algorithm.
SHA256 Computes the hash of a STRING or BYTES value, using the SHA-256 algorithm.
SHA512 Computes the hash of a STRING or BYTES value, 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 
 ; 
 
Design a Mobile Site
View Site in Mobile | Classic
Share by: