Добавление лицензионного ключа

143
02 марта 2018, 17:33

Мне нужно добавить в программу проверку на лицензию. У меня есть набор ключей и функция, проверяющая их валидность. Я не знаю, как лучше связать ее с int main и как проверять ключи (т.е. надо как-то их хранить и брать откуда-то).

Answer 1

Ну, судя по всему, это у вас не банковская система, и от взлома вы не пострадаете (разве что морально), так что просто пишется функция типа

bool checkKey(const string& key);

которая потом в main вызывается типа

int main()
{
    string key;
    cout << "Enter key: ";
    cin >> key;
    if (!checkKey(key))
    {
        cout << "Wrong key!\n";
        return 1;
    }

Ну, а сама функция может, например, проверять наличие ключа в файле с выданными ключами, или, например, ключ должен обладать какими-то особыми свойствами - типа, какая-то контрольная сумма должна иметь определенное значение, или сумма цифр на четных и нечетных местах совпадать (или отличаться, скажем, на 13) - вобщем, что в голову взбредет, такие ключи и создавайте и проверяйте.

Только, конечно, это все легко ломаемо, но еще раз - судя по вопросу, это не серьезная задача защиты суперсофта от любых кулхацкеров :)

READ ALSO
Побитовые операции и сдвиги (C/C++)

Побитовые операции и сдвиги (C/C++)

Имеется следующий код:

159
invalid operands of types что делать?

invalid operands of types что делать?

Добрый деньПроблема в чем? - выдает ошибку: "invalid operands of types 'double' and 'double(const char*) throw()' to binary 'operator=='" Вот фрагмент кода, в котором выдает ошибку:

158
Не открыть файл boost_thread-vc141-mt-gd-x32-1_66.lib

Не открыть файл boost_thread-vc141-mt-gd-x32-1_66.lib

Подключил буст, всё ок, но потом компилятор начал выдвать ошибку:

148
Общий элемент двух массивов

Общий элемент двух массивов

Имеется два массива (вектора, разницы нет какой контейнер использовать) нужно найти два элемента, которые есть и в первом и во второмКроме...

121