Шифрование паролей в настоящее время является горячей темой, поэтому новый курс, посвященный алгоритмам крипто-хеширования в Java, кажется полезным способом получить некоторые знания по этой теме.
Присоединение к Skillshare, онлайн-сообществу обучения, которое предлагает более 3000 курсов по широкому кругу предметов, обычно стоит 10 долларов в месяц. В настоящее время Skillshare предлагает предложение по цене 0,99 доллара США на 3 месяца, что было привлекательным стимулом для его опробования.
Архитектура криптографии Java: хеширование и безопасное хеширование паролей — это новый видео-курс Фрэнка Хиссена из отдела разработки и консультирования в области ИТ-безопасности. Он проходит через самые основы алгоритмов крипто-хеширования Java, таких как MD5, HMAC и PBKDF2, чуть более чем за полчаса.
Установка
В первом видео рассматриваются предварительные требования, необходимые для самостоятельного опробования примеров кодирования. Это JDK 1.8, поскольку он содержит всех последних поставщиков шифрования, любую версию Eclipse IDE и библиотеку кодеков Apache Commons, которая используется в большинстве примеров, поскольку предоставляет API, с которым намного проще работать, чем с внутренним JDK.
Пример простого хеширования Курс начинается с того, что преподаватель выполняет простое хеширование MD5 над образцом строки, создавая дайджест сообщения и передавая ему строковое представление в байтах. Он предупреждает, что при переключении платформ и поскольку дайджест работает с байтовыми массивами, лучше всего явно указать набор символов при преобразовании из строкового формата в байтовый (getBytes («UTF8»)), чтобы избежать проблем, связанных с переносимостью.
Пример реального хеширования Для этого упражнения нам нужно загрузить zip-архив вместе с его общедоступным значением хеш-функции MD5, а затем написать небольшой служебный класс, который будет применять хеширование MD5 к архиву и проверять полученный хеш-код по загруженному хешу.
Эффективное хеширование на основе потока Последний пример, но теперь более эффективный, поскольку мы не читаем весь zip-файл в памяти, а вместо этого потребляем его через поток на основе ввода-вывода.
Код аутентификации сообщения (MAC) Пришло время переключиться с простого алгоритма MD5 на алгоритм HMACMD5 с ключами, который использует как пароль (ключ), так и MD5 в качестве основного алгоритма хеширования, подходящего для аутентификации сообщений.
Безопасное хеширование паролей с помощью PBKDF2-PKCS # 5HMAC может быть приемлемым для аутентификации сообщений, но для хеширования паролей, то есть для аутентификации на веб-сайте и хранения хешированного пароля в базе данных, рекомендуется алгоритм PBKDF2. Поскольку Java не имеет встроенной реализации PBKDF2, используется версия Bouncy Castle. Преподаватель подготовил пакет Java, включающий эту реализацию, и сделал его доступным для загрузки студентам курса.
Приятным побочным эффектом использования подготовленного пакета является то, что вы можете взглянуть на фактическую реализацию PBKDF2, которая, несмотря на свою серьезность, охватывает всего 90 строк кода, включая символы новой строки!
В последней части исследуется несколько библиотек-оболочек для криптосервисов Java, которые предлагают гораздо более простой в использовании интерфейс.
В целом, архитектура криптографии Java была быстрым, занимающим всего 36 минут, и простым в использовании курсом, в котором кратко изучались основы хэширования на основе Java, что идеально в качестве отправной точки для решения проблемы криптографии на платформе Java.
Фрэнк Хиссен предлагает еще один курс по шифрованию Основы и практики шифрования файлов с помощью CrococryptFile на платформе Skillshare.
Как участник Skillshare у вас есть возможность не только учиться, но и создавать курсы и зарабатывать гонорары, делясь ими со всемирной аудиторией. Он утверждает, что его аудитория составляет 1,1 миллиона студентов, и они заплатили более 5 миллионов долларов своим учителям.