Достаточно с радужными таблицами: что нужно знать о безопасных схемах паролей кратко коснется этого. Он начинается с мини-разглагольствования о людях, неправильно понимающих радужные таблицы и фактический уровень опасности, которые они представляют, но затем превращается в хорошее обсуждение последствий производительности алгоритма хеширования паролей.
На ваш последний вопрос более прямой ответ заключается в том, что, изучая только выходные данные, вы можете определить только количество бит в выходных данных алгоритма окончательного хеширования. В зависимости от алгоритма, он может быть или не быть уникальным, но, если алгоритм хорош, не будет обнаруживаемых шаблонов, которые точно его идентифицируют. (Я говорю «окончательный», потому что вывод только MD5 будет выглядеть так же, как конечный результат SHA512-затем-MD5, так как последний шаг одинаков в обоих случаях.)
Однако на практике любой, кто может украсть вашу базу паролей, может также украсть ваш исходный код, поэтому он может просто взглянуть на ваш источник, чтобы увидеть, каков ваш алгоритм, и продублировать его для своих атак на вашу базу данных.