Authentifizierungsschlüssel

Der Authentifizierungsschlüssel wird aus einem geheimen Schlüssel und einem Zeitcode gebildet. Anschließend wird von diesem ein MD5-Hash erstellt. Die Ziele dieses Verfahrens sind:

Aufbau des Schlüssels

Der Authentifizierungsschlüssel ergibt sich dann aus: $key1 . $timecode . $key2.

Überprüfung des Schlüssels

Der Anfragende generiert den Authentifizierungsschlüssel und dessen MD5-Hash. Der Hash wird an die URL als Parameter „auth“ angehangen. Der Angefragte generiert seinerseits den Authentifizierungsschlüssel und zusätzlich den der letzten und kommenden 10 Minuten, um Fehler durch asynchrone Systemuhren oder Verzögerungen bei der Anfrage zu vermeiden. Stimmt der übergebene Hash mit einem der drei lokal generierten Hashes überein, so ist die Anfrage gültig.

Beispielfunktion in PHP

 function getAuthHash ($key1, $key2, $timecode_shift = 0) {
  $timecode = gmdate('ymdHi', time() + $timecode_shift * 600);
  $timecode = substr($timecode, 0, -1);
  $authkey = $key1 . $timecode . $key2;
  $authhash = md5($authkey);
  return $authhash;
 }