Então rapaz, o que acontece é que essa galera explora falhas. Se eles não encontrarem falhas não são capazes de fazer nada.
Vou dar um exemplo:
Desenvolvo um algoritmo que troca as letras 'a' por '0ABC' e armazena isso num arquivo. Um banco implementa no site deles esse sistema. Você cria a senha 'maracataia' então ele armazena sua senha como 'm0ABCr0ABCcut0ABCi0ABC'.
Mas um servidor de email resolveu implementar o mesmo algoritmo no site deles, porém implementou incorretamente o algoritmo, que tornava público o acesso ao arquivo que contém a senha alterada. Resultado disso, com análise estatística, o cracker conseguiu descobrir que 'a' estava sendo substituído por '0ABC'. A falha não foi em meu algoritmo, mas sim na implementação por parte do servidor de email.