- time: documentation ( source)
- hash_hmac: documentation ( source)
- rawurlencode: documentation ( source)
- base64_encode: documentation ( source)
- strtolower: documentation ( source)
<?php
$uri = "https://eventhubs-objenious.servicebus.windows.net/";
$sasKeyName = "RootManageSharedAccessKey";
$sasKeyValue = "hCakpdhbId7iFnlCx40RGwo0AD2uxwVFXK7VE6m1kjc=";
$targetUri = strtolower(rawurlencode(strtolower($uri)));
$expires = time();
$expiresInMins = 60;
$week = 60*60*24*7;
$expires = $expires + $week;
$toSign = $targetUri . "\n" . $expires;
$signature = base64_encode(hash_hmac('sha256',
$toSign, $sasKeyValue, TRUE));
$token = "SharedAccessSignature sr=" . $targetUri . "&sig=" . $signature . "&se=" . $expires . "&skn=" . $sasKeyName;
echo $token;