Обычный ответ - использовать MD5, но я хотел бы предположить, что слишком много коллизий, чтобы использовать MD5 в современных приложениях: http://www.mscs.dal.ca/~selinger/md5collision/
SHA-1 заменил MD5 более десяти лет назад.
В 2005 году NIST рекомендовал использовать SHA-2 вместо SHA-1 к 2010 году, поскольку была проделана работа по демонстрации столкновений в уменьшенных вариантах SHA-1. (Это довольно хорошее предвидение, поскольку теперь известно , что для нахождения коллизий требуется 2 ^ 51 работы, а в идеале для поиска коллизий требуется 2 ^ 80.)
Поэтому, пожалуйста, исходя из того, что вы пытаетесь сделать, и с какими другими программами вам может потребоваться взаимодействие, выберите MD5 (пожалуйста, нет), SHA-1 (я бы понял, но мы можем добиться большего) и SHA-2 (выбери меня! выбери меня!).