public string Protect(TData data)
        {
            byte[] userData      = _serializer.Serialize(data);
            byte[] protectedData = _protecter.Protect(userData);
            string protectedText = _encoder.Encode(protectedData);

            return(protectedText);
        }