I thought about invisible typing password and create this example. It works well. So 1 and 2 solutions are good answers for your question.
Console.WriteLine("Enter your password");
StringBuilder password = new StringBuilder();
ConsoleKeyInfo keyInfo = Console.ReadKey(true);
while(keyInfo.Key != ConsoleKey.Enter)
{
password.Append(keyInfo.KeyChar);
keyInfo = Console.ReadKey(true);
}
Console.WriteLine("Your password:'{0}'", password);