LiveRamp accepts the following hashed identifiers and hashing types:

  • Email addresses: SHA-256, MD5, or SHA-1 hashes
  • Phone numbers: SHA-1 hashes (EU data files cannot contain hashed phone numbers)
  • Mobile device IDs: SHA-1 hashes
Note: LiveRamp cannot accept hashed name and postal address data. Unfortunately, there is too much variation in casing and whitespace to do this reliably.

Note: When sending hashed identifiers, include the hash type in the column header, such as “email1_SHA-1”. 

Hashing Email Addresses

LiveRamp accepts SHA-256, MD5, or SHA-1 hashed email addresses. See "Formatting Email Addresses" for more information.

Convert all characters to lowercase and remove all whitespace before hashing. For example, the plaintext email address "MyName@liveramp.com " must be changed to "myname@liveramp.com" before hashing.

Note: Make sure to check that your hashing algorithm produces the results for email address hashing produced in the “Hashing Examples” section of this document. Hashing algorithms that put a “0x” at the beginning of the hash string will result in the file upload failing.

Note: Your match rates may be slightly lower with hashed email addresses than with plaintext emails. To maximize the match rates for hashed email addresses, send all three hash types, each in a separate column.

See the "Hashing Examples" section below for specific hashing instructions and examples.

Hashing Phone Numbers

LiveRamp accepts SHA-1 hashed phone numbers. Remove all country extensions, parentheses, and hyphens before hashing. See "Formatting Phone Numbers" for more information.

EU data files cannot contain hashed phone numbers.

Hashing Mobile Device IDs

LiveRamp accepts SHA-1 hashed mobile device IDs. See "Formatting Mobile Device IDs" for more information.

Before hashing:

  • AAIDs must be downcased and hyphenated

  • IDFAs must be upcased and hyphenated

Note: Hashed AAID IDs and hashed IDFA IDs cannot be accepted in the same file. To send both types of hashed mobile device IDs, put them in separate files.


Hashing Examples

MD5 Hashing in Python

The following code snippet shows an example of how to perform an MD5 hash of an email address in Python.

# Import hashing library
import hashlib
# The input email has capital letters and a space at the end.
input_email = "IMeyers@liveramp.com "
# The input email address is downcased and ALL whitespace (not only spaces) is removed.
hashed_email = hashlib.md5(''.join(input_email.lower().split())).hexdigest()

SHA-1 Hashing in Ruby

The following code snippet shows an example of how to perform a SHA-1 hash of an email address in Ruby.

# Import SHA-1 library
require 'digest/SHA1'
# Get hexdigest of the lowercased email address 
# (note that the email address in this example is already downcased and stripped of whitespace)
Digest::SHA1.hexdigest("imeyers@liveramp.com".downcase())
# Result =>"bd47cd008161c269b39b140f0ddd9e8996156574"

SHA-1 Hashing in Python

The following code snippet shows an example of how to perform an SHA-1 hash on a phone number in Python.

import hashlib

# A phone number in the correct format
input_phone = "4159870604"

# SHA-1 hash the phone number
hashed_phone = hashlib.sha1(input_phone).hexdigest()

Other Hashing Examples

There are JavaScript libraries available that can perform SHA-1 hashes—for example, this one from Google.

Related Articles:

Formatting Identifiers

We'd really appreciate your feedback on this article.

Updated 12/13/18.