Что касается скорости, вы должны попробовать.Это зависит от того, как реализованы функции.
Однако, есть вероятность, что вы увидите очень небольшую разницу в скорости.Все хеш-функции, которые вы цитируете, работают быстрее, чем может выдать средний диск, поэтому вопрос не в том, «какая хеш-функция сделает код быстрее всего?»но «какая хеш-функция сделает процессор максимально бездействующим, пока он ожидает данные с диска?».
На моем Intel Core2 Q6600 с тактовой частотой 2,4 ГГц (64-битный режим) и моим собственным CРеализация хеш-функций, я получаю следующие скорости хеширования:
- MD5: 411 МБ / с
- SHA-1: 336 МБ / с
- SHA-256: 145 МБ / с
- SHA-512: 185 МБ / с
Используется только одно ядро.Мои жесткие диски работают со скоростью около 100 МБ / с, поэтому можно сказать, что даже с SHA-256 процесс хеширования будет использовать не более 17% мощности процессора компьютера.Конечно, ничто не гарантирует, что реализация, используемая MySQL, будет такой быстрой, поэтому вам стоит попробовать.Кроме того, в 32-разрядном режиме производительность SHA-512 несколько снижается.
С криптографической точки зрения в MD5 и SHA-1 обнаружены (серьезные) недостатки, поэтому, если вы работаете в настройках безопасности(т.е. вы хотите обнаруживать изменения, даже если есть кто-то, кто может выбрать некоторые из изменений и предпочел бы, чтобы вы не обнаруживали эти изменения), вам следует придерживаться SHA-256 или SHA-512, которые, насколько нам известнодостаточно надежны.MD5 и SHA-1 по-прежнему хороши в ситуациях, не связанных с безопасностью.