protected static function mask($mask, $str) { $out = ''; $l = mb_orig_strlen($str); $ml = mb_orig_strlen($mask); while (($o = mb_orig_strlen($out)) < $l) { $out .= mb_orig_substr($str, $o, $ml) ^ $mask; } return $out; }