Сканирование сигнатур файла с помощью С++
Мне нужно сканировать файл для проверки наличия определенной сигнатуры (например, сигнатуры расширения файла) с помощью С++. Смысл заключается в том, что нужно перейти в общей последовательности байт на определенное смещение и проверить последовательность с этого места, и тут у меня появилось несколько вопросов: в виде чего представлять данную последовательность - в виде шестнадцатеричных чисел, хеша или чего-то другого? И в виде чего выгоднее представить сигнатуру? Некоторые утверждают, что нужно получать хеш данной последовательности, но я не понимаю зачем, если и вправду можно считать байты из проверяемого файла? Надеюсь мой вопрос понятен и не слишком глуп. Заранее благодарю за помощь!