Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24

Менеджер паролей

18.11.2023, 08:39. Показов 5286. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
надо написать менеджер паролей который будет делать: Генерацию паролей, хранение/чтение в БД, проверку, что нет повторов.
я просто не имею понятия как это можно реализовать ибо нормального образования в С++ у меня нет.( буду признателен если вы мне поможете)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.11.2023, 08:39
Ответы с готовыми решениями:

Менеджер паролей
Доброго всем дня. Выдали мне задание написать менеджер паролей для интернета не зависящий от браузера. Может подскажите с чего начать...

Проект "Менеджер Паролей"
Создайте приложение, которое будет работать как менеджер паролей. Цель Менеджер паролей управляет паролями пользователя. Приложение...

Создать генератор паролей в котором можно указать длину пароля и количество паролей
Помогите пожалуйста! Задание: Нужно создать генератор паролей в котором можно указать длину пароля и количество паролей то есть длина...

23
Злостный нарушитель
 Аватар для Verevkin
10637 / 5788 / 1277
Регистрация: 12.03.2015
Сообщений: 26,723
18.11.2023, 11:42
Цитата Сообщение от rtxAntihero Посмотреть сообщение
я просто не имею понятия как это можно реализовать ибо нормального образования в С++ у меня нет.( буду признателен если вы мне поможете)
То есть, написать тебе готовую программу?
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 13:34  [ТС]
вообще да но я уже написал почти только я не могу подключить базу данных если поможешь буду благодарен.

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <iostream>
#include <string>
#include <random>
#include "cxxopts.hpp"
#include "sqlite3.h"
#include <conio.h>
#include <locale>
#include "sqlite3.h"
 
const char set_lowercase[] = "abcdefghijklmnopqrstuvwxyz";
const char set_uppercase[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const char set_digits[] = "0123456789";
const char set_special[] = "!@#$%^&*_";
const char *sqlite3_errmsg (sqlite3*);
 
class Database {
public:
    sqlite3 *db;
    int openStatus, execStatus;
 
    Database() {
        openStatus = sqlite3_open("passwords.db", &db);
        if (openStatus != SQLITE_OK)
            std::cout << "Database Error: " << sqlite3_errmsg(db) << std::endl;
        else {
            std::string sql = "CREATE TABLE IF NOT EXISTS passwords(ID INTEGER PRIMARY KEY AUTOINCREMENT, PASSWORD TEXT NOT NULL);";
            execStatus = sqlite3_exec(db, sql.c_str(), 0, 0, 0);
            if (execStatus != SQLITE_OK)
                std::cout << "Create Table Error!" << std::endl;
        }
    }
 
    int savePassword(std::string password) {
        std::string sql = "INSERT INTO passwords (PASSWORD) VALUES ('" + password + "')";
        execStatus = sqlite3_exec(db, sql.c_str(), 0, 0, 0);
        if (execStatus != SQLITE_OK)
            return -1;
        return 0;
    }
 
    ~Database() {
        sqlite3_close(db);
    }
};
 
class PasswordGenerator {
    std::random_device rd{};
    std::mt19937 rng{ rd() };
public:
    std::string generate(size_t length, bool flag_lowercase, bool flag_uppercase, bool flag_digits, bool flag_special) {
        std::string set_result, password;
        if (!flag_lowercase && !flag_uppercase && !flag_digits && !flag_special)
            return "";
        if (flag_lowercase)
            set_result += set_lowercase;
        if (flag_uppercase)
            set_result += set_uppercase;
        if (flag_digits)
            set_result += set_digits;
        if (flag_special)
            set_result += set_special;
        std::uniform_int_distribution<int> dist(0, set_result.length() - 1);
        for (size_t i = 0; i < length; i++) {
            password += set_result[dist(rng)];
        }
        return password;
    }
};
 
int main(int argc, char** argv) {
    setlocale(LC_ALL, "rus");
    cxxopts::Options options("passwordgen", "Password Generator v0.0.0.1");
    options.add_options()
        ("l,lowercase", "Включить строчные буквы")
        ("u,uppercase", "Включить заглавные буквы")
        ("d,digits", "Включить цифры")
        ("s,special", "Включить специальные символы !@#$%^&*_")
        ("n,length", "Длина пароля", cxxopts::value<size_t>()->default_value("8"))
        ("c,count", "Сколько паролей сгенерировать", cxxopts::value<size_t>()->default_value("1"))
        ("h,help", "Использование печати")
        ;
 
    auto args = options.parse(argc, argv);
 
    if (args.count("h")) {
        std::cout << options.help() << std::endl;
        exit(0);
    }
 
    bool f1, f2, f3, f4;
    if (args.count("l") == 0 && args.count("u") == 0
        && args.count("d") == 0 && args.count("s") == 0) {
        f1 = true; f2 = true; f3 = true; f4 = true;
    }
    else {
        f1 = args.count("l");
        f2 = args.count("u");
        f3 = args.count("d");
        f4 = args.count("s");
    }
 
    Database db;
    PasswordGenerator pg;
    for (size_t i = 0; i < args["c"].as<size_t>(); i++) {
        std::string password = pg.generate(args["n"].as<size_t>(), f1, f2, f3, f4);
        std::cout << password << std::endl;
        db.savePassword(password);
    }
 
    char action;
    action = _getch();
    return 0;
 
}
0
Злостный нарушитель
 Аватар для Verevkin
10637 / 5788 / 1277
Регистрация: 12.03.2015
Сообщений: 26,723
18.11.2023, 13:47
Цитата Сообщение от rtxAntihero Посмотреть сообщение
я уже написал почти
Цитата Сообщение от rtxAntihero Посмотреть сообщение
нормального образования в С++ у меня нет
У меня тоже.
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 13:51  [ТС]
это печально надеюсь кто-нибудь еще увидит и дай бог поможет)
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
18.11.2023, 15:13
rtxAntihero, а в чем проблема? Код у вас компилируется. Не знаете как библиотеку указать для линкера?
Какой у вас компилятор и среда?
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 16:26  [ТС]
делал в visual studio.
он пишет что-то типа нет доступа к библиотеки или неправильное подключение, хотя вроде всё нормально должно быть
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
18.11.2023, 16:39
Цитата Сообщение от rtxAntihero Посмотреть сообщение
он пишет что-то типа нет доступа к библиотеки или неправильное подключение
Добавьте sqlite3.lib в настройках: Linker -> Input -> Additional Dependencies.
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 20:03  [ТС]
добавил но он пишет "не удаётся открыть файл"
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
18.11.2023, 20:09
rtxAntihero, возможно несовпадает разрядность. Откуда этот файл у вас?
Если вы его не сами собирали, то наверное имеет смысл пойти другим путем: скачать отсюда https://www.sqlite.org/download.html
архив sqlite-amalgamation и просто добавить исходники из архива к себе в проект (естественно ссылки на уже скомпилированную версию из настроек надо будет убрать после этого).
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2942 / 1047
Регистрация: 01.06.2021
Сообщений: 10,936
18.11.2023, 20:15
Цитата Сообщение от rtxAntihero Посмотреть сообщение
делал в visual studio
сами написали или украли чужой код?
Цитата Сообщение от rtxAntihero Посмотреть сообщение
он пишет что-то типа нет доступа к библиотеки или неправильное подключение
а как вы вообще писали код, если вы не в состоянии его даже проверить? писали на заборе?
Цитата Сообщение от rtxAntihero Посмотреть сообщение
хотя вроде всё нормально должно быть
откуда такая уверенность? Такое чувство, что вы реально украли чужой код и теперь не понимаете, почему он он не работает.

Я пойду тоже спроектирую и соберу в своём гараже Lamborghini. А потом создам тему на форуме "как настроить водительское сиденье".
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 20:25  [ТС]
если бы я украл чужой код тогда бы и не спрашивал вовсе.
я никогда не работал с бд по этому и не понимаю что вообще делать

Добавлено через 2 минуты
скачивал от сюда же не понимаю ничего честно.
я закинул в папку с проектом sqlite3.c и sqlite3.h
может я не всё добавил и надо остальные фалы тоже закинуть?
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
18.11.2023, 20:27
Цитата Сообщение от rtxAntihero Посмотреть сообщение
я закинул в папку с проектом sqlite3.c и sqlite3.h
Закинули - отлично. Теперь надо в проект добавить их.
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 20:32  [ТС]
только сейчас заметил что я 2 раза подключил sqlite3.h
сейчас подключая sqlite3.c у меня выдаёт 127 ошибок...
видимо не судьба мне в этом разобраться
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
18.11.2023, 20:35
rtxAntihero, покажите хоть как вы делаете это? Скриншот раскрытого дерева проекта покажите.
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 20:42  [ТС]
вот
Миниатюры
Менеджер паролей   Менеджер паролей   Менеджер паролей  

0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 20:44  [ТС]
хотя каким-то образом уже не 127 а 113
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
18.11.2023, 21:29
rtxAntihero, я просил дерево проекта.
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 21:45  [ТС]
жесть туплю уже
Миниатюры
Менеджер паролей   Менеджер паролей   Менеджер паролей  

Менеджер паролей  
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
19.11.2023, 00:19
rtxAntihero, ну вот в нем видно, что sqlite3.c вы туда не добавили.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.11.2023, 00:19
Помогаю со студенческими работами здесь

менеджеров паролей
как создать менеджеров паролей в c++ ??

Генератор паролей
Составить генератор пароля.

Шифровальщик паролей
Здравствуйте, уважаемые гуру и более другие программисты. Я, как видно из моего ника, полный нуб. Это обидно. А ведь очень хочется...

Генератор паролей
нужно сгенерировать пароль хотя что бы большие латинские буквы, Коды английских символов - «A»=65,…,«Z»=90, «a»=97,…, «z» =122. ...

подбор паролей
может кто то писал,не как не могу разобраться


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru