эксперт в майнкрафт апи
найс, оправдал свою хуйню информацией на которую всем похуйПотому что временно новый сайт и апишка в разработке. (Для квишклиента, но он ушел на протект к котопушке)
это мало того что щиткод от первого символа до последнего, так еще и отсутствие логикиВот сам шедевр, щиткода 0
использовать джавадок при объявлении класса с указанием автора кто высрал это говно, но не использовать джавадок для документации своей хуйни - высшее мастерствоСтруктура
нет, дописывать этот кусок говна не нужно. ему уже ничего не поможетHwidUtility - логика получения информации о устройствах на пк (нужно дописать)
просто абсолютно несуразное объяснение надобности класса и его названия
- Main - мейн-класс
- Auth - класс авторизации, содержит декрипт строк
- UserProfile - система менеджера юзера
спасибо что решил показаться умным и вставил в зависимости библиотеку которая используется для получения доступа имени бедолаги который будет запущен на данной (с вашего позволения) """защите"""Нужные библиотеки:
* Lombok
Java:
private static Auth instance = new Auth();
public static Auth getInstance() {
return instance;
}
Java:
protected static String sendRequest() throws Exception {
URL url = new URL("https://pastebin.com/raw/zu0U0dsc");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3");
int responseCode = connection.getResponseCode();
if (responseCode != HttpURLConnection.HTTP_OK) {
throw new RuntimeException("Ошибка подключения к серверу!");
}
try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line + "\n");
}
reader.close();
String decryptedResponse = decrypt(response.toString().replace("\n", ""), "deuspidoras9999");
String[] parts = decryptedResponse.split(":");
/*
TODO: Получаем декрипченный ответ от сайта и получаем данные,
после : делаем новый ответ, к примеру: username:password:till
Тогда код будет такой:
new UserProfile(parts[0], parts[2]); (Пароль можно не записывать в UserProfile)
[0] - username, [2] - till
*/
if (decryptedResponse.contains(":")) {
for (String part : parts) {
String[] userData = part.split(":");
if (userData[0].contains(HwidUtility.getHwid())) {
UserProfile userProfile = new UserProfile(userData[0]);
System.out.println("User authorized! username:" + userProfile.getName());
}
}
} else {
System.out.println(decryptedResponse);
throw new Exception("Site response is not contains a ':'!");
}
return decryptedResponse.toString();
}
}
protected
называется sendRequest, возвращает строку, UserProfile где то внутри появляется хуй пойми зачем, ахуенное раскидывание исключений
Java:
/**
* Выполняет функцию для декрипта контента.
* @param message сообщение для декрипта.
* @param key ключ для декрипта (от 16-ти символов до 64).
*
* @return Дешифрованный контент.
*/
protected static String decrypt(String message, String key) {
StringBuilder result = new StringBuilder();
int dataLength = message.length();
int keyLength = key.length();
for (int i = 0; i < dataLength; ++i) {
result.append((char) (message.charAt(i) ^ key.charAt(i % keyLength)));
}
return result.toString();
}
Java:
@Setter
@Getter
@AllArgsConstructor
/**
* Author: Cra$hdami
* since: 07.07.2024 18:05
* description: Система юзер-профиля.
*/
public class UserProfile {
private final String name;
}
Java:
/**
* Функция для получения информации о ПК пользователя.
* @return Информация о ПК пользователя.
*/
public static String getHwid() {
return DigestUtils.md5Hex(DigestUtils.md5Hex(
System.getenv("os") +
System.getProperty("os.arch") +
System.getenv("HOMEDRIVE") +
System.getenv("PROCESSOR_ARCHITEW6432") +
System.getenv("PROCESSOR_LEVEL") +
System.getProperty("os.version") +
System.getProperty("os.name") +
System.getenv("PROCESSOR_REVISION") +
System.getenv("PROCESSOR_IDENTIFIER") +
System.getenv("PROCESSOR_ARCHITECTURE") +
System.getenv("COMPUTERNAME") +
System.getenv("user.name") +
System.getenv("PHYSICAL_MEMORY_SIZE")
));
}
это не пароль чтобы его скрывать.
ты только повышаешь коллизии, ибо входная строка в первый md5 будет всегда равна по размеру 128 битам.
чтобы ХОТЯ БЫ оставить количество коллизий на прошлом уровне, нужна биекция 128 битов к 128 битам.
не нужно быть очень умным человеком, чтобы понять что биекция не появится в таком случае, отнюдь, количество коллизий лишь увеличится.
это не самый важный парт в этом месседже и в целом в твоем случае он не критичен, ибо не будет использоваться кем либо, но раз
я должен упомянуть и это.щиткода 0