Sos
-
Автор темы
- #1
WARNING! SHIT CODE!
Видел темы где челики просто написали
и постили с этим тему.
Вот вам генератор пароля который в 1000 раз лучше
Сразу хочу сказать, что это не официальный алгоритм оригинального бота.
Мне просто было интересно сделать, кто хочет может запилить для себя бота (правда зачем?)
Ну вообщем, есть говно код, кто то из вас мог сделать данный алгоритм в 5 строчек и т.п,
Можете поковырять данную какаху палочкой.
Можете сделать парсер слов, подключить aiogram, добавить пару кнопок и у вас есть бот 1:1 как оригинал.
Видел темы где челики просто написали
"".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()
pip install transliterate
Последнее редактирование: