Вы не должны использовать обычный MD5;MD5 не предназначен для обеспечения подлинности сообщений.Вместо этого вы можете просто предоставить метку времени вместе с другой информацией (сообщением) в кодировке base64, чтобы она не содержала символ «:».Затем вы можете вычислить HMAC-код сообщения, например, с помощью
$hmac = hash_hmac("md5", $message, $secret)
$signed_message = $message . ":" . $hmac
. На другом конце вы можете проверить эту подпись, сначала разделив ":", получив $ message и $ hmac, затем выможно проверить подлинность с помощью
$hmac == hash_hmac("md5", $message, $secret)
Если коды совпадают, то проверьте, находится ли отметка времени в $message
в допустимых пределах.