Пример #1
0
        public string Decrypt <T>(string json) where T : new()
        {
            var jObject = JObject.Parse(json);
            var prop    = GetPropertiesToEncrypt(typeof(T));

            foreach (var p in prop)
            {
                if (p.CanRead && p.CanWrite)
                {
                    var bytes = Convert.FromBase64String((string)jObject[p.Name]);
                    bytes = _encrypting.Unprotect(bytes);

                    if (bytes == null)
                    {
                        return(null);
                    }

                    dynamic variable = _byteSerializer.Deserialize(bytes, p.PropertyType);
                    jObject[p.Name] = variable;
                }
            }

            return(jObject.ToString());
        }