Исходник Алгоритм бота EasyStrongPassword

Sos
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2019
Сообщения
256
Реакции[?]
55
Поинты[?]
0
WARNING! SHIT CODE!

Видел темы где челики просто написали "".join(choice(chars) for i in range(16))
и постили с этим тему.
Вот вам генератор пароля который в 1000 раз лучше

Сразу хочу сказать, что это не официальный алгоритм оригинального бота.

Мне просто было интересно сделать, кто хочет может запилить для себя бота (правда зачем?)

Ну вообщем, есть говно код, кто то из вас мог сделать данный алгоритм в 5 строчек и т.п,
Можете поковырять данную какаху палочкой.

Можете сделать парсер слов, подключить aiogram, добавить пару кнопок и у вас есть бот 1:1 как оригинал.
Python:
from random import *
from transliterate import translit
from transliterate.decorators import transliterate_function

# список слов (можно заменить добавить парсер и получать слова из источника)
words = [
    "Простота",
    "Старость",
    "Гадость",
    "Страх",
    "Вред"
]

# + 100 лет к брутфорсу вашего пароля
punct = ["!", "@", "#", "$", "%", "&", "*", "?", "+", "-", "(", ")", "[", "]"]

# Выбираем слова из списка
def select_words():

    selected_words = []

    while len(selected_words) < 3:

        word = words[randint(0, len(words)-1)]
        if word not in selected_words:
            selected_words.append(word)

    return selected_words

# Делаем эту хуйню (спиздил с документации)
@transliterate_function(language_code="ru", reversed=True)
def translit(word):
    return word

# Закинем выбранные слова в функцию выше
def translator(words_list):

    new_word_list = []
    for i in words_list:
        new_word_list.append(
            translit(i).capitalize()
        )
    return new_word_list

# Возьмём первые 4 буквы с каждого слова
def update_words(words):

    new_words = []

    for i in words:

        new_words.append(i[:4])

    return new_words

# Сделаем пароль
def do_password(words, symbol, g1, g2):

    password = ""

    for i in words:

        if i == words[0]:
            password += f"{i}{g1}"
        elif i == words[1]:
            password += f"{i}{g2}"
        else:
            password += f"{i}{randint(10, 99)}"

    password += symbol

    return password

# Просто для удобства
def get_symbol():

    return punct[randint(0, len(punct)-1)]

# Главный метод
def main():

    # Берём слова
    sw = select_words()
    # UPD: Добавит ещё рандома :\
    shuffle(sw)

    # Берём первые 4 буквы слова
    new_words = update_words(sw)
    # Прогоняем через транслитератор
    new_words = translator(new_words)
    # Берём случайные цифры в деапозоне от 0 до 9
    # Сделано как в оригинале (можно не делать)
    g1 = randint(0, 9)
    g2 = randint(0, 9)

    # Берём 3 пароля (как в оригинале)
    password_list = [do_password(new_words, get_symbol(), g1, g2) for i in range(3)]

    # Вывод в консоль
    print(password_list)
    # return password_list



# Запуск
if __name__ == '__main__':
    main()
UPD: что бы скрипт работал надо установить вот эту либу: pip install transliterate
 
Последнее редактирование:
ставь чайник, зажигай плиту
Эксперт
Статус
Оффлайн
Регистрация
22 Май 2020
Сообщения
1,444
Реакции[?]
1,092
Поинты[?]
10K
брутфорс наверное стороной обходит комбинацию из частей слов, а вот рандомный набор символов нацелено подбирает! и ведь нельзя в обычном джоине добавить спец. символы!!
 
Sos
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2019
Сообщения
256
Реакции[?]
55
Поинты[?]
0
брутфорс наверное стороной обходит комбинацию из частей слов, а вот рандомный набор символов нацелено подбирает! и ведь нельзя в обычном джоине добавить спец. символы!!
Почему ? join ведь присоединяет что то к строке ?
брутфорс наверное стороной обходит комбинацию из частей слов, а вот рандомный набор символов нацелено подбирает! и ведь нельзя в обычном джоине добавить спец. символы!!
Брутфорс это перебор паролей, ведь глупо генерировать какие то случайные символы, что бы взломать пароль от аккаунта. Берётся база паролей, загружается в брутфорс и идёт атака. Форсили же эти генераторы дискорд нитро или купоны для какой то поеботы где типо просто стоит цикл While True, и генерация рандомных символов. Шанс сгенерировать такой код ≈ 1 на 1.000.000.000 +-
 
Последнее редактирование:
Сверху Снизу