Генератор ключей своими клешнями

в 14:02, , рубрики: easygui, python, python27, python32, randstring в python, Генератор ключей, своими руками, случайные буквы и цифры на python, метки:

Всем привет, и сегодня будет гайд как сделать генератор ключей Steam на питоне. Для этого нам понадобится:

Компоненты

Прямые руки и PyCharm 2016.2(какой угодно). Также easygui для Вашей версии Python.

Знания

Установка easygui. Умение писать в комментарии.

Подача

Вам нужно поместить easygui и random в одну и ту же папку с Вашим keygen'ом. Как это сделать?

1.Удаляете файл __init__ в easygui(Python/Lib/site-packages/easygui)
2.Копируете файл easygui и вставляете в папку с keygen'ом.
3.Переменовываете в папке Python'а easygui на __init__
4. С рандомом всё просто. Он лежит в Python/Lib/random. Просто Copy-Paste!

Для начала импорты и переменные.

from random import *
from easygui import *
keys = 0 #кол-во генерируемых ключей
b = "Ваш ключик: " #Чтобы писало не GFJSK-JFKDF..., а Ваш ключик: (ключ)

С этим покончили. Если у Вас нет аудитории, то можете пропустить. Авторизация:

def login_procedure(): #Функция login_procedure()
    while True: #Цикл для тех кто ошибётся в вводе!
        msg = "Авторизуйтесь" 
        title = "Вход"
        fieldNames = ["Логин", "Пароль"]
        #Мы сделали переменные  и список для полей ввода!
        fieldValues = multpasswordbox(msg, title, fieldNames) #Сами поля
        try: #Может у кого easygui нету или "Отмена" нажмёт?
            USERNAME, PASSWORD = fieldValues[0], fieldValues[1] #Переменные логина и пароля
        except:
            msgbox("Переустановите easygui!", "Ошибка №1")
            exit(0)
        #Проверка
        if USERNAME == "Login" and PASSWORD == "Password":
            msgbox("Вход выполнен!") #Прям как на VB!
            break #Выходим из цикла
        else:
            msgbox("Неверный логин или пароль")


Теперь надо сделать так чтобы было кастомизируемое количество ключей. (Внимание школо-критикам! Да, программа вылетит, если вы введёте больше 10. Да я неправ).

def key_number():
    global keys
    msg = "Введите число от 1 до 9!"
    title = "Почти готово!"
    fieldName = "Кол-во ключей"

    fieldValues2 = enterbox(msg, title, fieldName)

    keys = fieldValues2[0]

Ну вот. Теперь осталось самое сложное. Сделать вывод этого всего на экран. Вы зададитесь вопросом «И как вообще рандомные буквы делать?» Первый этап.

def key_giver():
    global b
    alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
                'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'] #Список букв и цифр

Теперь добавим в функцию key_giver() цикл создания ключей и вывод на msgbox.

    for i in range(int(keys)):
        for i in range(3): #Три чёрточки(4 - 1 = 3)
            for i in range(5):
                a = randint(0, 35)
                b = str(b) + str(alphabet[a])
            b = str(b) + str("-")
        for i in range(5): #Ещё раз, чтобы было не 1-2-3-4-, a 1-2-3-4
            a = randint(0, 35)
            b = str(b) + str(alphabet[a])
        msgbox(b, "Вот ваш ключ")
        b = "Ваш ключик: " #Чтобы обнулить ключи, иначе всё бы складывалось в одну кучу.

Удивительно. Теперь у нас есть все необходимые функции. Надо бы их вызвать.

login_procedure()
key_number()
key_giver()

Теперь у Вас всё будет работать ровно и чётко. Конвертируйте в .exe и отправьте гулять по просторам интернета. Код всего 69 строчек. Не займёт много памяти.

Автор: thematdev

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js