она работает правильно с маленькими ключами, но с длинными выдает другой хеш
Ну, тогда я бы смотрел - чем реализация алгоритма HMAC в публикации отличается от его описания в Википедии: https://ru.wikipedia.org/wiki/HMAC. Может, там мелочь какая-то?
А вообще, у вас все нормально с ключом? Почему он такой - последовательность из четырех склеенных одинаковых строк "BigGc2tQw7fHgm4oMWewHPwCKGyFPfbdp3ojHezv", в которую через каждые 60 байт вставлены 2 символа ADh?
Причем, в онлайн-генераторе эти символы ("минусы") не видны!
(7)
Да все воспроизвел, другой хеш.
Лично у меня вообще не получилось с вашим ключом получить ваш хэш, ни на указанном сайте, ни на https://tools.icoder.uz/hmac-generator.php - и там, и там хэш "HELLO WORLD!" равен 2d41d2aceabb45018d592623094ca8c70dfce899.
Так что без уточнения параметров задачи (текст, ключ) больше ничем помочь не могу.
Обратите внимание на символы, которыми заканчиваются первые две строки ключа.
Там на самом деле не минус(код 2D), а два символа с кодами C2 и AD, которые в различных кодировках (ANSI, OEM, UTF-8) представляют разные графические символы.
Попробуйте ввести ключ одной строкой без этих "минусов"