Есть ли реальная разница между этими двумя?
MD5 имеет некоторые известные уязвимости, в то время как SHA-256 нет. Из-за этого я бы предложил SHA-256. Вот ссылка, объясняющая почему. Хотя я понятия не имею, действительно ли они связаны с Министерством внутренней безопасности США, сайт объясняет, что я имею в виду.
В статье Википедии о MD5 также обсуждаются слабые стороны.