O que você está fazendo não é "criptografia", por si só; é "hash". A principal diferença entre os dois é que a criptografia é facilmente reversível (com a chave correta, é claro), enquanto o hash é projetado para ser extremamente difícil de reverter em qualquer circunstância que não seja conhecer a mensagem original em primeiro lugar.
Em teoria, os hashes simulam um "oráculo aleatório", um homúnculo hipotético com memória eidética e uma maneira de gerar números perfeitamente aleatórios e perfeitamente únicos, sem limite superior de faixa. Você daria uma mensagem a esse homenzinho e uma das duas coisas aconteceria; ou ele nunca viu a mensagem antes; nesse caso, ele gera um novo número aleatório e fornece isso para você como resumo, ou ele já viu essa mensagem antes, e então ele se lembra e fornece o número que gerou quando a viu. primeira vez. Nesse modelo teórico, não há relação zero entre uma mensagem e seu resumo e, como nenhum número único aparece duas vezes no RNG, não há possibilidade de colisão.
Infelizmente, não temos um oráculo aleatório ideal; a ideia tem impossibilidades práticas para uma implementação digital, como a capacidade do oráculo de armazenar e recordar com eficiência todas as mensagens já contidas por qualquer pessoa em qualquer lugar, e a capacidade dos clientes de aceitar um número que pode ter centenas ou milhares de dígitos decimais em comprimento. Em vez disso, temos funções hash, que são operações matemáticas irreversíveis (unidirecionais) que funcionam na própria mensagem, para criar uma transformação determinística (mesma mensagem => mesmo hash) sem aparenterelacionamento entre o hash e a mensagem original. Conforme mencionado nos comentários, também não deve haver alteração previsível no valor do hash produzido, fazendo alterações sistemáticas na mensagem; idealmente, cada bit do resumo teria 50% de chance de mudar, dada uma alteração em um único bit da mensagem.
Existem muitos usos para uma função hash; eles são usados para verificação de desafios (pense em credenciais de login como senhas) sem a necessidade de ambas as partes conhecerem o segredo do texto sem formatação e são usados como somas de verificação para verificar se uma mensagem não foi adulterada ou corrompida. Eles também são usados nos chamados cenários de "prova de trabalho"; tarefas computacionais difíceis de concluir, mas fáceis de verificar.
Se você alguma vez encontrar uma maneira de reverter eficientemente um resumo de hash SHA256 para produzir uma mensagem (qualquer mensagem) que resultaria nesse hash, seria uma demonstração demonstrando que, de fato, o hash está fundamentalmente quebrado. O SHA256 é, de fato, considerado seguro, o que significa que não há método documentado, por mais prático que seja, começar com um resumo de hash e produzir uma mensagem coletiva que requer menos trabalho do que simplesmente tentar todas as possibilidades (o que é ideal para o SHA-256). ^ 256 ~ = 10 ^ 77 possibilidades).