То, на что вы ссылаетесь, называется "уязвимостью при столкновении". Но сначала немного предыстории.
Если вы храните незашифрованный пароль, это, как вы уже догадались, Сэм, предположительно, дыра в безопасности. Тем не менее, вы можете использовать проверенный алгоритм, который уменьшает эту возможность. Вам определенно не следует пытаться изобретать свои собственные (так как вы, похоже, не являетесь разработчиком алгоритма).
Я обычно использую MD5, который доступен в базах данных, таких как mysql. Таким образом, вы можете также включить проверку в запросы к вашей базе данных.
Теперь, к сожалению, MD5 не является устойчивым к столкновениям. Однако шансы на столкновение довольно невелики. На форумах могут быть и другие предложения, на которые вы можете посмотреть. Я знаю, что SHA-2 - одна из таких возможностей. Я не знаю, как легко использовать в приложениях.