function DatabaseSchema_pgsql::hashBase64

Calculates a base-64 encoded, PostgreSQL-safe sha-256 hash per PostgreSQL documentation: 4.1. Lexical Structure.

Parameters

$data: String to be hashed.

Return value

string A base-64 encoded sha-256 hash, with + and / replaced with _ and any = padding characters removed.

1 call to DatabaseSchema_pgsql::hashBase64()
DatabaseSchema_pgsql::ensureIdentifiersLength in includes/database/pgsql/schema.inc
Make sure to limit identifiers according to PostgreSQL compiled in length.

File

includes/database/pgsql/schema.inc, line 836

Class

DatabaseSchema_pgsql

Code

protected function hashBase64($data) {
  // Ensure lowercase as D7's pgsql driver does not quote identifiers
  // consistently, and they are therefore folded to lowercase by PostgreSQL.
  $hash = strtolower(base64_encode(hash('sha256', $data, TRUE)));
  // Modify the hash so it's safe to use in PostgreSQL identifiers.
  return strtr($hash, array(
    '+' => '_',
    '/' => '_',
    '=' => '',
  ));
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.