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)); }
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()); }