Reputation: 245
Ok, So I am new to C#, but already learned a bit. But I have one question, how do I Replace Characters that are typed into a console with "*" or just hide them completely?
var pw = "eric123";
Console.WriteLine("Password: ");
var value = Console.ReadLine();
if (value == pw)
{
Console.WriteLine("Permitted, Play online? (Y/N)?");
var getGameOnlineStatus = Console.ReadLine();
//Rest Of the Code is just for me :)
Any Help would be appreciated!
Upvotes: 13
Views: 18998
Reputation: 1
using System;
class Login{
static void Main() {
string passwd = HideCharacter();
Console.WriteLine(passwd);
}
public static string HideCharacter()
{
ConsoleKeyInfo key;
string code = "";
do
{
key = Console.ReadKey(true);
if (Char.IsNumber(key.KeyChar)||Char.IsLetter(key.KeyChar))
{
Console.Write("*");
code += key.KeyChar;
}
} while (key.Key != ConsoleKey.Enter);
return code;
}
}
Upvotes: 0
Reputation: 791
public static string HideCharacter()
{
ConsoleKeyInfo key;
string code = "";
do
{
key = Console.ReadKey(true);
if (Char.IsNumber(key.KeyChar))
{
Console.Write("*");
}
code += key.KeyChar;
} while (key.Key != ConsoleKey.Enter);
return code;
}
password = HideCharacter();
Upvotes: 0
Reputation: 4525
found it here
Password masking in C# console application
class PasswordExample
{
static void Main(string[] args)
{
Console.WriteLine("Pls key in your Login ID");
var loginid = Console.ReadLine();
Console.WriteLine("Pls key in your Password");
var password = ReadPassword();
Console.Write("Your Password is:" + password);
Console.ReadLine();
}
public static string ReadPassword()
{
string password = "";
ConsoleKeyInfo info = Console.ReadKey(true);
while (info.Key != ConsoleKey.Enter)
{
if (info.Key != ConsoleKey.Backspace)
{
Console.Write("*");
password += info.KeyChar;
}
else if (info.Key == ConsoleKey.Backspace)
{
if (!string.IsNullOrEmpty(password))
{
// remove one character from the list of password characters
password = password.Substring(0, password.Length - 1);
// get the location of the cursor
int pos = Console.CursorLeft;
// move the cursor to the left by one character
Console.SetCursorPosition(pos - 1, Console.CursorTop);
// replace it with space
Console.Write(" ");
// move the cursor to the left by one character again
Console.SetCursorPosition(pos - 1, Console.CursorTop);
}
}
info = Console.ReadKey(true);
}
// add a new line because user pressed enter at the end of their password
Console.WriteLine();
return password;
}
}
Upvotes: 23