Esempio n. 1
0
        public void WriteData()
        {
            BinaryFormatter serializer = new BinaryFormatter();
            var temp = new MemoryStream();
            serializer.Serialize(temp, _files);
            int serializedSpaceBytes = (int) temp.Length;
            
            MemoryStream ms = new MemoryStream();
            using (var writer = new BinaryWriter(ms))
            {
                writer.Write(_maxSizeBytes);
                writer.Write(_usedSizeBytes); 
                writer.Write(serializedSpaceBytes);
                foreach (byte b in temp.ToArray())
                {
                    writer.Write(b);
                }
                
                Random r = new Random();
                for (int i = _usedSizeBytes; i < _maxSizeBytes; ++i)
                {
                    writer.Write((byte) r.Next(0, 255));
                }
            }

            if (_password != null)
                ms = new MemoryStream(SymmetricCrypt.Aes256Encrypt(ms.ToArray(), _password));

            File.WriteAllBytes(_filepath, ms.ToArray());
        }
Esempio n. 2
0
        private void ReadData()
        {
            MemoryStream stream = new MemoryStream(File.ReadAllBytes(_filepath));
            
            if (_password != null)
            {
                stream = new MemoryStream(SymmetricCrypt.Aes256Decrypt(stream.ToArray(), _password));
            }

            using (BinaryReader br = new BinaryReader(stream))
            {
                _maxSizeBytes = br.ReadInt32();
                _usedSizeBytes = br.ReadInt32();
                int serializedSizeBytes = br.ReadInt32();

                byte[] bytes = br.ReadBytes(serializedSizeBytes);

                
                using (var memoryStream = new MemoryStream(bytes))
                {
                    var deserializer = new BinaryFormatter();
                    _files = (List<RepoFileInfo>) deserializer.Deserialize(memoryStream);
                }

                foreach (RepoFileInfo repoFileInfo in _files)
                {
                    _filenames.Add(repoFileInfo.GetFilename());
                }
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 解密数据
 /// </summary>
 /// <param name="buffer">要解密的数据</param>
 /// <returns>解密后的数据</returns>
 internal static byte[] DecryptData(byte[] buffer)
 {
     using (var sc = new SymmetricCrypt(CryptType.Aes))
     {
         return(sc.Decrypt(buffer, Key, Iv));
     }
 }
Esempio n. 4
0
        public AuthenticationService(IContext context, IMailSender sender)
        {
            _context             = context;
            _notificationService = new NotificationService(_context, sender);
            _crypt = new SymmetricCrypt(SymmetricCryptProvider.TripleDES);
            var parameterRepository = new ParameterRepository(_context);

            _crypt.Key = parameterRepository.GetValueByKey(Parameter.CRYPTO_KEY);
        }
Esempio n. 5
0
        public static string GetUserToken(Dictionary <string, string> acl)
        {
            List <string> tokenList = new List <string>();

            foreach (var key in acl.Keys)
            {
                tokenList.Add(string.Format("{1}{0}{2}", _spliter_inner, key, acl[key]));
            }
            var            userToken = string.Join(_spliter_outer.ToString(), tokenList.ToArray());
            SymmetricCrypt crypt     = new SymmetricCrypt(_type);

            return(crypt.Encrypt(userToken, _key, _iv));
        }
        /// <summary>
        /// Decrypts the specified encrypted string.
        /// </summary>
        /// <param name="encryptionMeta">The encryption meta.</param>
        /// <param name="encryptedString">The encrypted string.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentNullException">
        /// encryptionMeta;The expected metadata is not here.
        /// or
        /// encryptedString;The expected encrypted string is not here.
        /// </exception>
        public static string Decrypt(this EncryptionMetadata encryptionMeta, string encryptedString)
        {
            if (encryptionMeta == null)
            {
                throw new ArgumentNullException("encryptionMeta", "The expected metadata is not here.");
            }
            if (string.IsNullOrEmpty(encryptedString))
            {
                throw new ArgumentNullException("encryptedString", "The expected encrypted string is not here.");
            }

            var crypt = new SymmetricCrypt();

            return(crypt.Decrypt(encryptedString, encryptionMeta.Key, encryptionMeta.InitialVector));
        }
Esempio n. 7
0
        public static Dictionary <string, string> AnalyzeUserToken(string userToken)
        {
            SymmetricCrypt crypt = new SymmetricCrypt(_type);

            userToken = crypt.Decrypt(userToken, _key, _iv);
            var tokenList = userToken.Split(_spliter_outer);

            var dic = new Dictionary <string, string>();

            foreach (var item in tokenList)
            {
                var tmp = item.Split(_spliter_inner);
                if (tmp.Length == 2)
                {
                    dic.Add(tmp[0], tmp[1]);
                }
                else
                {
                    throw new ArgumentException("口令格式错误 - " + item);
                }
            }
            return(dic);
        }
Esempio n. 8
0
        public string EncryptConnString(string connStr)
        {
            var crypt = new SymmetricCrypt(Common.Database.Consts.GET_CONN_CRYPT_TYPE());

            return(crypt.Encrypt(connStr, Consts.GET_CONN_CRYPT_KEY(), Consts.GET_CONN_CRYPT_IV()));
        }
Esempio n. 9
0
        public string DecryptConnString(string connStr)
        {
            var crypt = new SymmetricCrypt(Consts.GET_CONN_CRYPT_TYPE());

            return(crypt.Decrypt(connStr, Consts.GET_CONN_CRYPT_KEY(), Consts.GET_CONN_CRYPT_IV()));
        }
Esempio n. 10
0
        protected override void Seed(Context context)
        {
            var crypto = new SymmetricCrypt(SymmetricCryptProvider.TripleDES)
            {
                Key = "smart123"
            };

            #region User

            context.Set <User>().AddOrUpdate(u => u.Name,
                                             new Admin
            {
                Name      = "Admin",
                Active    = true,
                Login     = "******",
                Email     = "*****@*****.**",
                Password  = crypto.Encrypt("smart123"),
                CreatedAt = DateTime.Now
            });


            context.Set <User>().AddOrUpdate(u => u.Name,
                                             new Admin
            {
                Name      = "Daemon User",
                Active    = true,
                Login     = "******",
                Email     = "*****@*****.**",
                Password  = crypto.Encrypt("smart123"),
                CreatedAt = DateTime.Now
            });

            context.Save();

            #endregion

            #region Parametro

            context.Set <Parameter>()
            .AddOrUpdate(p => p.Key,
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.CRYPTO_KEY,
                Value     = "smart123",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.EMAIL_FROM_KEY,
                Value     = "*****@*****.**",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.SMTP_PORT_KEY,
                Value     = "25",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.SMTP_PASSWORD_KEY,
                Value     = "",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.SMTP_SERVER_KEY,
                Value     = "localhost",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.SMTP_USE_SSL_KEY,
                Value     = "false",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.SMTP_USERNAME_KEY,
                Value     = "",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.APP_NAME_KEY,
                Value     = "Your Company Training",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.SMTP_USE_DEFAULT_CREDENTIALS_KEY,
                Value     = "true",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.FILE_STORAGE_KEY,
                Value     = "Content/Support",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.TALK_TO_US_RECEIVER_NAME_KEY,
                Value     = "Raphael Carubbi Neto",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.TALK_TO_US_RECEIVER_EMAIL_KEY,
                Value     = "*****@*****.**",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.DAEMON_USER_KEY,
                Value     = "*****@*****.**",
                Active    = true
            },
                         new Parameter
            {
                CreatedAt = DateTime.Now,
                Key       = Parameter.BASE_URL_KEY,
                Value     = "http://localhost:21114",
                Active    = true
            });


            context.Save();

            #endregion
        }