Здравствуйте, ___petya___, Вы писали:
___>1. Как получать код вводимого с клавиатуры символа сразу после нажатия на клавишу(ввод из консоли)? Console.Read возвращает введённый символ только после нажатия на Enter. Ввод пароля целиком (одной строкой) не подойдёт, т.к. нужно запоминать время ввода каждого символа.
___>2. Как подавлять вывод вводимых символов на экран или заменять их на звёздочки?
Console.ReadKey(true)
___>3. Как преобразовать тип string в тип byte[] ?
System.Text.Encoding.GetBytes
Здравствуйте, ___petya___, Вы писали:
___>2. Как подавлять вывод вводимых символов на экран или заменять их на звёздочки?
string _password;
static bool EnterPassword()
{
Console.Write("password: ");
_password="";
while(true)
{
ConsoleKeyInfo cki = Console.ReadKey(true);
if(cki.Key == ConsoleKey.Enter)
{
Console.WriteLine();
return true;
}
else
{
if(cki.Key == ConsoleKey.Escape)
{
_password = "";
return false;
}
else
{
if(Char.IsLetterOrDigit(cki.KeyChar) || Char.IsSymbol(cki.KeyChar))
{
_password+=cki.KeyChar;
Console.Write("*");
}
else
{
if(cki.Key == ConsoleKey.Backspace)
{
if(_password.Length > 0)
{
ReplaceEntry(" ", Console.CursorLeft - 1, Console.CursorTop);
_password = _password.Remove(_password.Length - 1);
}
}
else
{
Debug.Assert(false, "Этот случай невозможен! ");
}
}
}
}
}
}
... << RSDN@Home 1.2.0 alpha rev. 786>>
Здравствуйте, Odi$$ey, Вы писали:
___>>2. Как подавлять вывод вводимых символов на экран или заменять их на звёздочки?
OE> string _password;
Здесь самое место StringBuilder-у
Обычно, введённый символ какое-то время виден на экране, и "превращается" в астериск после его ("кокого-то" времени) истесчения.
Здравствуйте, _FRED_, Вы писали:
_FR>Здесь самое место StringBuilder-у
теоритически — да, практически — врядли это будет причиной тормозов при вводе пароля _с_клавитатуры_
... << RSDN@Home 1.2.0 alpha rev. 786>>
Здравствуйте, _FRED_, Вы писали:
_FR>Здесь самое место StringBuilder-у
А SecureString?
... << RSDN@Home 1.2.0 alpha rev. 782>>
Здравствуйте, jenyavb, Вы писали:
_FR>>Здесь самое место StringBuilder-у
J>А SecureString?
А это даже ещё лучше. Ведь дело не в скорости (в данном случае о ней вообще можно не рассуждать, как
земетилАвтор: Odi$$ey
Дата: 07.12.07
Odi$$ey), а в использовании идеалогически верных инструментов.