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

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

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

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

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

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

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

23
Злостный нарушитель
 Аватар для Verevkin
10260 / 5684 / 1265
Регистрация: 12.03.2015
Сообщений: 26,364
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
10260 / 5684 / 1265
Регистрация: 12.03.2015
Сообщений: 26,364
18.11.2023, 13:47
Цитата Сообщение от rtxAntihero Посмотреть сообщение
я уже написал почти
Цитата Сообщение от rtxAntihero Посмотреть сообщение
нормального образования в С++ у меня нет
У меня тоже.
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 13:51  [ТС]
это печально надеюсь кто-нибудь еще увидит и дай бог поможет)
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
18.11.2023, 15:13
rtxAntihero, а в чем проблема? Код у вас компилируется. Не знаете как библиотеку указать для линкера?
Какой у вас компилятор и среда?
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 16:26  [ТС]
делал в visual studio.
он пишет что-то типа нет доступа к библиотеки или неправильное подключение, хотя вроде всё нормально должно быть
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
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
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
18.11.2023, 20:09
rtxAntihero, возможно несовпадает разрядность. Откуда этот файл у вас?
Если вы его не сами собирали, то наверное имеет смысл пойти другим путем: скачать отсюда https://www.sqlite.org/download.html
архив sqlite-amalgamation и просто добавить исходники из архива к себе в проект (естественно ссылки на уже скомпилированную версию из настроек надо будет убрать после этого).
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6156 / 2847 / 1042
Регистрация: 01.06.2021
Сообщений: 10,396
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
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
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
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
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
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
18.11.2023, 21:29
rtxAntihero, я просил дерево проекта.
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 24
18.11.2023, 21:45  [ТС]
жесть туплю уже
Миниатюры
Менеджер паролей   Менеджер паролей   Менеджер паролей  

Менеджер паролей  
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
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
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru