Um hash não é uma codificação, é uma transformação matemática não reversível. Você não pode fazer um hash e reverter o cálculo para encontrar o valor original: você só pode tentar forçar um hash brutal, tentando senhas e hashing para ver se o hash combina.
As senhas são normalmente armazenadas como um hash salgado codificado na base64 da senha. É a parte hash que torna a senha irrecuperável (e a parte salt significa que listas pré-geradas de hashes são inúteis). Idealmente, o próprio hash usa um cálculo demorado, de modo que o forçamento forçado é mais caro (não nos importamos com o custo de hashing no caso nominal, pois você só precisa executar um hash para determinar se uma senha fornecida pelo usuário é válida ).
Para obter mais informações, consulte Como as senhas hash seguras?