У меня есть файл, содержимое которого "из теста" - 9 байт. В документации сказано, что SHA созданных файлов вычисляется с использованием SHA1:
Хэш файла SHA-1 вычисляется и сохраняется в объекте большого двоичного объекта.
(из https://developer.github.com/v3/git/blobs/)
Однако, когда я вычисляю шестнадцатеричный вывод SHA1 «из теста», я получаю 5669556d9a5c27fdd649dcaaa0873757c2aa402f
.
API Github сообщает, что SHA равен 62b551731eada762035d4665978027cd44291290
- это возвращаемый ETag и значение "sha" в ответе API для получения файла. Кроме того, когда я вызываю конечную точку CreateFile со значением «from test» и 566955...
в качестве sha, мне говорят, что SHA неверен.
Я также пробовал добавлять новые строки, вычислять SHA значения содержимого в кодировке base64, вычислять SHA base64 + завершающую новую строку, и ни один из них не дал мне 62b551731eada762035d4665978027cd44291290
. Как Github вычисляет это значение?
Я дважды проверил, что содержимое удаленного файла одинаково - "из теста" - каким-то образом SHA все еще отличается.