Если речь идет о встроенных в стандартные библиотеки методы, то:
crc32 не хватает? кажется быстрее некуда, есть практически во всех языках и фреймворках. если 32бита мала, можно делить хешируемые данные на части, считать для каждого crc32 и получить 2х..4х больше битность и меньше вероятность коллизий..
md5 так же есть везде, да, он тяжелее, но зато относительно криптостойкий (был взломан десятилетие назад, текущих мощностей железа хватает).
sha256... более чем хорош (так же реализация встроена как в c# так и в java), кстати оно по умолчанию должно аппаратное ускорение использовать, может так получиться что будет даже быстрее crc32.. но там все зависит от размера данных, например много мелких блоков данных обрабатываются дольше чем мало больших