public static bool Login(string username, string password)
        {
            string op = string.Empty;

            User user = AjudanteParaBD.SelectUserWithUsername(username);

            Console.Clear();
            if (user == null)
            {
                Console.WriteLine("\nErro! O utilizador inserido nao existe.");

                return(false);
            }

            //calcula o rep da palavra passe introduzida
            string insertedRep = SHA256Code.GenerateFromText(SHA256Code.GenerateFromText(password) + user.salt);

            if (user.rep.Equals(insertedRep))
            {
                Console.WriteLine("\nLogin efetuado com sucesso!\n");
                userLog = username;
                return(true);
            }
            else
            {
                Console.WriteLine("\nDados invalidos! Tente novamente.\n");
                return(false);
            }
        }
        private bool Login(string username, string password)
        {
            User   user        = AjudanteParaBD.SelectUserWithUsername(username);
            string insertedRep = SHA256Code.GenerateFromText(SHA256Code.GenerateFromText(password) + user.salt);

            return(user.rep.Equals(insertedRep));
        }
Example #3
0
        public static void RegistoMenu()
        {
            string username = string.Empty;
            string password = string.Empty;
            string rep      = string.Empty;
            string salt     = string.Empty;

            User user = null;

            do
            {
                Console.WriteLine("+----------------------------------------------------------+");
                Console.WriteLine("|                       Registo                            |");
                Console.WriteLine("+----------------------------------------------------------+");
                Console.WriteLine("\nIntroduza os dados solicitados!");
                Console.Write("Username:"******"Password:"******"Erro! A password deve conter no minimo 4 caracteres.");
                    }
                } while (password.Length < 4);

                //Calcula o SALT
                salt = BitConverter.ToString(SHA256Code.GenerateSalt()).Replace("-", "");

                //calcula o REP
                rep = SHA256Code.GenerateFromText(SHA256Code.GenerateFromText(password) + salt);

                user = new User(username, rep, salt);
            } while (!DataBaseFunctions.Register(user));

            LoginMenu();
        }
        public static void VerificarIntegridade(Dir dir)
        {
            var currentfiles  = SHA256Code.GenerateFromDir(dir.path);
            var databaseFiles = AjudanteParaBD.SelectFilesWithDir(dir.path);


            foreach (TFile f in databaseFiles)
            {
                //Se foi eliminado
                if (!currentfiles.Keys.Contains(f.path))
                {
                    Console.WriteLine("Removido o ficheiro \'" + f.path + "\' da base de dados.");
                    AjudanteParaBD.DeleteFile(f);

                    continue;
                }

                // Se existir vamos ver se foi alterado
                if (!currentfiles[f.path].Equals(f.sha256))
                {
                    Console.WriteLine("O ficheiro \'" + f.path + "\'  sofreu alteracoes.");
                    AjudanteParaBD.UpdateFile(new TFile(f.path, currentfiles[f.path], dir.path));
                }
                else
                {
                    Console.WriteLine("O ficheiro \'" + f.path + "\' não sofreu alteracoes.");
                }

                currentfiles.Remove(f.path);
            }

            // Se ainda houver ficheiros, são os que foram adicionados
            foreach (string file in currentfiles.Keys)
            {
                Console.WriteLine("Adicionado o ficheiro \'" + file + "\' a base de dados.");
                AjudanteParaBD.InsertFile(new TFile(file, currentfiles[file], dir.path));
            }
        }
        public string[] VerificarIntegridadeSHA256()
        {
            var currentfiles  = SHA256Code.GenerateFromDir(dir.path);
            var databaseFiles = AjudanteParaBD.SelectFilesWithDir(dir.path);

            var lines = new List <string>();

            foreach (TFile f in databaseFiles)
            {
                //Se foi eliminado
                if (!currentfiles.Keys.Contains(f.path))
                {
                    lines.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " - Removido o ficheiro \'" + f.path + "\' da base de dados.");
                    AjudanteParaBD.DeleteFile(f);

                    continue;
                }

                // Se existir vamos ver se foi alterado
                if (!currentfiles[f.path].Equals(f.sha256))
                {
                    lines.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " - O ficheiro \'" + f.path + "\' sofreu alteracoes.");
                    AjudanteParaBD.UpdateFile(new TFile(f.path, currentfiles[f.path], dir.path));
                }

                currentfiles.Remove(f.path);
            }

            // Se ainda houver ficheiros, são os que foram adicionados
            foreach (string file in currentfiles.Keys)
            {
                lines.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " - Adicionado o ficheiro \'" + file + "\' a base de dados.");
                AjudanteParaBD.InsertFile(new TFile(file, currentfiles[file], dir.path));
            }

            return(lines.ToArray());
        }