Почему большинство алгоритмов хэширования состоит из 16 символов?
Большинство алгоритмов хэширования, которые подходят для сравнения (==), состоят из символов: 1234567890abcdef
Это такие алгоритмы как: MD5, все SHA, все Keccak, все Shake.
Почему в них не используются все буквы английского алфавита разного регистра?
Это ведь 62 символа против 16 - так больше вариантов для перебора, а значит и больше устойчивость ко взлому.
Сергей Сергей, использование большего исчисления увеличило бы сложность и скорость хэша? Ну чтобы понимать почему используется шестнадцатеричное исчисление.
шестнадцатью цифрами можно выразить четыре бита, две таких цифры выражают байт, из байтов состоит информация в компьютере, хэш-функции работают с байтами и выдают байты, получаемая "строка" лишь выражение полученных байт(ов).
сложность и скорость зависят от алгоритма.
Это форма записи произвольного набора данных. Вы можете его и в base64 кодировать и будет вам более короткая строка из всех символов латиницы.
Удобство шестнадцатеричной записи заключается в кратности степени двойки - на один байт (8 бит) уходит ровно два символа.