protected static function rotMask($data, $key, $offset = 0)
{
// Rotate key for example if $offset=1 and $key=abcd then output will be bcda
$rotated_key = substr($key, $offset) . substr($key, 0, $offset);
// Repeat key until it is at least the size of the $data
$key_pad = str_repeat($rotated_key, ceil(1.0 * strlen($data) / strlen($key)));
return $data ^ substr($key_pad, 0, strlen($data));
}