Можно ли в качестве 128 битного ключа использовать первые 128 бит хеша SHA256? Доброго времени суток. Необходимо преобразовать пароль в 128 битный ключ. Решил в качестве этой цели использовать хеш функцию. Изучив 128 битные хеш функции я понял, что это либо устаревшие MD хеш функции либо SHA1 в котором нашли кучу дыр. Я понял, что и тот и другой вариант по понятным причинам не подходят и стал смотреть 256 битные хеш функции. Нашел вроде как нормальный SHA256, но он возвращает хеш длиной в 256 бит, а ключ должен быть длиной 128 бит. Можно ли просто взять первую половину хеша, а вторую отбросить? P.S. SHA256 хеш считается не 1 раз, а 10 000 для противодействия брутфорсу. Вот функция на C++:std::vector Cryptor::generate_key_from_password(std::vector password) { std::vector hash = SHA256::get_hash(std::move(password)); for (int i = 0; i < 9999; i = i + 1) { hash = SHA256::get_hash(hash); } hash.resize(16); return hash; }

11 Фев 2022 в 19:54
218 +1
0
Ответы
1

Да, можно использовать первые 128 бит хеша SHA256 в качестве 128-битного ключа. Ваш подход к генерации ключа из пароля с использованием SHA256 выглядит в целом правильным. Однако, учтите, что обрезание хеша до 128 бит может уменьшить уровень безопасности вашего ключа, поскольку часть информации будет отброшена. Также обратите внимание, что многократное применение хеш-функции может значительно замедлить процесс генерации ключа, особенно при большом значении итераций (в вашем случае 10 000).

Предлагаю вам следующие улучшения вашего кода:

Используйте криптографическую функцию для итераций хеша, например, HMAC-SHA256.Увеличьте количество итераций итерации (9999 может быть недостаточно для защиты от брутфорса).Используйте готовые библиотеки криптографических функций для обработки паролей, так как они обычно учитывают лучшие практики безопасности.

Будьте осторожны при работе с криптографическими функциями и убедитесь, что ваш код безопасен.

16 Апр в 19:26
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 388 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир