Данный материал вовсе не говорит против sha256, как собственно выше и сказали. Это вопрос "слабых паролей", на которые и нацелена работа программы John The Ripper, и небольшого исходного набора данных. Нужна была соль или еще какие-то меры, как правильно сказали вопрос к разработчикам алгоритма работы программы проверки данных. Что касается коллизий, то насколько я помню материал у хорошей хеш функции первая коллизия, с вероятностью 50%, должна встретится через

операций перебора, где N размер выхода функции, т.е. для sha-256 через

операций, а это число не просто огромно, оно трудно представимо (или даже вообще не представимо). Если же хешируются короткие данные, размером менее выхода самого хеша, то коллизий, насколько я понимаю, и вовсе быть не должно.