Generate the User ID

  1. First things you’ll need are the UID ingredients. The Internal User ID (for each of your users), App ID, and Security Key.
internalUserID = User123
appID = 9145
securityKey = 54dbf08d625158c6d7b055928d6ac0cc
  1. Generate an md5 hash of the combined string using your programming language’s md5 function (using Python 3, it is in a library called hashlib). Then concatenate the first 10 characters of the md5 hash. Make sure the Checksum is lowercase.
# Generate an md5 hash of the combined string
# Concatenate the first 10 characters using hexdigest(:10) 

concat_input = internalUserID + appID + securityKey
checksum = hashlib.md5(concat_input).hexdigest()[:10]
  1. Combine them all into one to create the PL UID.
PL_UID = internalUserID + “-” + appID + “-” + checkSum
  1. Repeat this process for each of your users to create their User ID.

Examples

Here are examples of how to do this process using 3 different programming languages.

Python
#This Script Produces a PL User ID using Python

import hashlib
import sys

endUserId = "User123" #insert internal user ID here
applicationKey = "54dbf08d625158c6d7b055928d6ac0cc" #insert application key here
applicationId = "9145" #insert App ID here.

checkSum = hashlib.md5(endUserId + applicationId + applicationKey)
userId = endUserId + "-" + applicationId + "-" + checkSum.hexdigest()[:10]
print(userId)
Ruby
require 'digest'
end_user_id = 'test_user'
publisher_id = '1'
security_key = '00000000000000000000000000000000'
hash = Digest::MD5.hexdigest(end_user_id + publisher_id + publisher_security_key)
user_id = "#{end_user_id}-#{publisher_id}-#{hash[0..9]}
C#
System.Security.Cryptography;

public class Program
{
 public static void Main()
 {
    var endUserID = "User123"; //assuming a member id for their user to be 3. Make sure to change it for every user
    var publisherId = "9165";
    var securityKey = "34101a01e1f305b39d16283d5dd05194";
          var hash = CalculateMD5Hash(endUserID + publisherId + securityKey);
    var userId = endUserID + "-" + publisherId + "-" + hash.Substring(0, 10).ToLower();
    var iFrameURL = "http://www.peanutlabs.com/userGreeting.php?userId=" + userId + "&dob=03-03-1979&sex=1"; //make sure to append the correct dob and sex for every user
          Console.WriteLine("Generated user id is :{0}", userId);
          Console.WriteLine("Generated iFrameURL is :{0}", iFrameURL);

 }
  public static string CalculateMD5Hash(string input)
        {
            // step 1, calculate MD5 hash from input
            MD5 md5 = System.Security.Cryptography.MD5.Create();
            byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
            byte[] hash = md5.ComputeHash(inputBytes);

            // step 2, convert byte array to hex string
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < hash.Length; i++)
            {
                sb.Append(hash[i].ToString("X2"));
            }
            return sb.ToString();
        }
}