Хранить пароли в базе в открытом виде грубейшая ошибка. Решение — сохранять только их хэши.
В этом посте:
• Используем MessageDigest для MD5.
• Используем MessageDigest для SHA-256.
• Добавляем соль для защиты.
Для серьёзных проектов применяют алгоритмы вроде
PBKDF2, bcrypt и scrypt. Но даже простая схема с SHA-256 и солью уже сильно повышает безопасность.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤7👍6🤝1
Проверяем строку на длину, наличие цифр, строчных и прописных букв, а также спецсимволов. Получаем результат «надёжный» или «слабый».
В этой задаче:
• Описываем правила как предикаты;
• Условия в isStrong();
• Считываем пароль и печатаем результат.
Решение легко встраивается в формы регистрации и консольные утилиты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤6👍5🤝4👎1
NIO Selector — как обрабатывать тысячи соединений в одном потоке!
Обычно каждому сокету нужен поток, но это не масштабируется. Selector позволяет держать тысячи соединений на одном потоке.
Шаг 1 — поднимаем сервер и делаем неблокирующим:
Шаг 2 — регистрируем в селекторе события:
Шаг 3 — ждём событий:
🔥 Так можно обрабатывать тысячи клиентов без лишних потоков.
👉 Java Ready | #практика
Обычно каждому сокету нужен поток, но это не масштабируется. Selector позволяет держать тысячи соединений на одном потоке.
Шаг 1 — поднимаем сервер и делаем неблокирующим:
ServerSocketChannel.open().configureBlocking(false);
Шаг 2 — регистрируем в селекторе события:
server.register(selector, SelectionKey.OP_ACCEPT);
Шаг 3 — ждём событий:
selector.select();
🔥 Так можно обрабатывать тысячи клиентов без лишних потоков.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤5🔥4
Программа считает количество строк в .java-файле, отдельно выводит пустые строки и строки с комментариями. Отличный пример работы с файлами и Stream API.
В этой задаче:
• Читаем файл построчно через Files.readAllLines
• Считаем пустые строки методом .isBlank()
• Фильтруем комментарии по //
Решение универсальное и легко расширяется для анализа других языков.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤7👍5👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Он охватывает основы программирования, алгоритмы и ключевые концепции ООП.
Материал подан через практические задания, поэтому он подойдёт как для новичков, так и для тех, кто хочет укрепить фундаментальные знания.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5🔥4
Читай числа, строки, меняй разделитель, проверяй токены и закрывай поток. Это быстрый способ парсить текст, консольный ввод или файлы без сложного кода.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🤝7👍6❤5😁1
Поворот изображения через Graphics2D!
Если нужно повернуть картинку, это можно сделать прямо в коде. Сейчас покажу как.
Шаг 1 — читаем файл:
Шаг 2 — создаём новый холст:
Шаг 3 — применяем поворот:
Шаг 4 — сохраняем результат:
🔥 В итоге получаем повернутое изображение. Угол можно задавать любой.
👉 Java Ready | #практика
Если нужно повернуть картинку, это можно сделать прямо в коде. Сейчас покажу как.
Шаг 1 — читаем файл:
BufferedImage img = ImageIO.read(new File("input.jpg")); // загружаем картинкуШаг 2 — создаём новый холст:
BufferedImage rotated = new BufferedImage(
img.getHeight(), img.getWidth(), img.getType()
);
Graphics2D g = rotated.createGraphics();
Шаг 3 — применяем поворот:
g.rotate(Math.toRadians(90), img.getWidth() / 2, img.getHeight() / 2); // 90°
g.drawImage(img, 0, 0, null);
g.dispose();
Шаг 4 — сохраняем результат:
ImageIO.write(rotated, "jpg", new File("rotated.jpg"));🔥 В итоге получаем повернутое изображение. Угол можно задавать любой.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤5🔥4