Данный материал вовсе не говорит против sha256, как собственно выше и сказали. Это вопрос "слабых паролей", на которые и нацелена работа программы John The Ripper, и небольшого исходного набора данных. Нужна была соль или еще какие-то меры, как правильно сказали вопрос к разработчикам алгоритма работы программы проверки данных. Что касается коллизий, то насколько я помню материал у хорошей хеш функции первая коллизия, с вероятностью 50%, должна встретится через
![$2^{N/2}$ $2^{N/2}$](https://dxdy-04.korotkov.co.uk/f/b/d/e/bde434a933c42099387cd9db34a5b31482.png)
операций перебора, где N размер выхода функции, т.е. для sha-256 через
![$2^{128}$ $2^{128}$](https://dxdy-04.korotkov.co.uk/f/f/b/b/fbbba0a188c3c619c50f36b3d0a06a7c82.png)
операций, а это число не просто огромно, оно трудно представимо (или даже вообще не представимо). Если же хешируются короткие данные, размером менее выхода самого хеша, то коллизий, насколько я понимаю, и вовсе быть не должно.