Название вопроса (сейчас) спрашивает: «Каковы первые биты битовой строки». Это однозначно, если биты представлены индивидуально в хронологическом порядке или в письменном виде в контексте, где существует обычный порядок чтения, например, слева направо.
Но основная часть вопроса касается «строки, сгенерированной из sha256». Это следует читать как SHA-256, определяемый ФИПС 180-4. Это алгоритм, который выводит «битовую строку» $256$ биты, и они не сразу идентифицируются.
В теле вопроса есть х =
с последующим $64$ все символы либо цифры, либо буквы из а
к ф
(в униформе, здесь строчные), что $16=2^4$ символы. Это намекает на то, что результат SHA-256 закодирован в шестнадцатеричный, с кодировкой каждого символа 4 бита (обратите внимание 256$=64\times4$). Это одно из нескольких распространенных представлений битовых строк в виде символов.
Существует несколько разных и несовместимых способов преобразования шестнадцатеричных чисел в биты, но, к счастью, в случае SHA-256 один указан в 3.1 подпункте 2 на страница с пометкой 7 FIPS 180-4 (обязательно к прочтению). Таким образом, самые значащие биты идут первыми, будь то полубайт (4 бита), байт (8 бит) или слово (32 бита в случае SHA-256).
Таким образом, чтобы найти первый $я$ битов для заданного хэша SHA-256, мы можем
Это относится ко всем хэшам семейства SHA (замена $256$ с их выходной шириной). При отсутствии другой спецификации разумно применять ее к другим стандартным хэшам, ширина вывода которых кратна $32$ (или даже $8$ или же $4$) биты. Это спорно для MD5, так как он использует мало-порядок байтов соглашение о порядке байтов в $32$-битное слово.И я бы не стал слепо распространять его на другие величины, используемые в криптографии и также представленные в шестнадцатеричном формате, такие как целые числа, используемые в RSA.