Пароль с использованием c-массива

Я создаю систему входа в систему с помощью С++, но сталкиваюсь с небольшими проблемами при настройке функции пароля.

  1. Маскировка

Я хочу замаскировать пароль, код выглядит следующим образом:

#include <conio.h>

for(int j=0;j<5;j++) {
 pass2[j]=getch();
 cout<<"*";
}

Это заставляет пользователей вводить фиксированную длину пароля. Итак, есть ли лучший способ замаскировать пароль, используя строку без ограничений?

  1. строка против символа

Причина, по которой я предпочитаю использовать строковый тип, заключается в том, что его легче сравнивать (я думаю). Так как пароль требуется вводить дважды. И я могу просто проверить их по

password==password_2;

вместо того, чтобы проверять его по одному. (и я могу не знать size_of_password.)

for (int i; i < size_of_password; i++){
 if (password[i]==password_2[i]){...}
}

Есть ли способ, которым я могу легко проверить ввод пользователя? Спасибо.

Вместо того, чтобы читать фиксированное количество символов, читайте до тех пор, пока пользователь не нажмет клавишу ввода.

Jonathan Potter 10.04.2019 04:30

вы имеете в виду использование массива символов?

Www 10.04.2019 04:33
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
314
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это похоже на то, что вы пытаетесь выполнить: маскировка пароля в с++

По сути, просто проверьте, когда передан символ ввода, а затем сломайте. В противном случае продолжайте push_back создавать строковый контейнер.

Именно то, что мне нужно. Спасибо. Но у меня все еще есть некоторые вопросы. Я вижу, что он использует «const char BACKSPACE = 8;//код ASCII для клавиши BACKSPACE». Вызывает ли это какие-либо проблемы на другом ПК, использующем юникод.

Www 10.04.2019 05:05

Не должно, так как 8 - это стандарт юникода для возврата

Connor J. Toth 10.04.2019 18:06

Другие вопросы по теме

Похожие вопросы

Как предотвратить многократный выбор одной и той же опции/значения в операторе switch
При использовании std::vector::push_back для вставки неизвестного количества элементов следует ли проверять std::vector::max_size при каждом нажатии?
Преобразование статического массива constexpr в параметр шаблона в С++ 11
Очень странная ошибка при попытке напечатать шестнадцатеричный хеш Blake2 файла
Как проверить дескриптор USB HID как недействительный из-за повторного подключения устройства
Перемещение функции из консольного приложения в проект общей библиотеки, похоже, приводит к несвязанной ошибке компиляции
Символ 'T' не разрешается в строке после ключевого слова шаблона
Как использовать массивы сложных переменных в C++?
Как записать данные в стандартный ввод для использования отдельным потоком, ожидающим ввода из стандартного ввода?
Состояние гонки 2 чередующихся потока