none
Descriptografar password e userName SHA256 RRS feed

  • Pergunta

  • Fala galera. 

    Seguinte, preciso de um código exemplo para descriptografar o password e o userName ao efetuar login, estes estão criptografados em SHA256. 

    Estou trabalhando com MVC5.

    Alguem pode me ajudar?

    segue meu código de criptografia.

    StringBuilder senha = new StringBuilder();
    SHA256 sha = SHA256Managed.Create();
    
    byte[] entrada = Encoding.ASCII.GetBytes(password);
    byte[] hash = sha.ComputeHash(entrada);
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < hash.Length; i++)
    {
        senha.Append(hash[i].ToString("X2"));
    }

    Abraço. 

    quarta-feira, 5 de março de 2014 20:58

Respostas

  • Então Fernando,

    Eu particularmente nunca havia visto esta palavra salt junto com criptografia, mas se entendi bem o que você deseja fazer, não parece ser muito complicado da para fazer com seu próprio código acima fazendo poucas modificações.

    Pois bem, a ideia é simples, você terá que ter em seu banco pelo menos 2 campos um para o login e outro para criptografia, nunca tenha um campo para senha especificamente.

    Quando for criar o login você vai gravar o login do usuário no campo de login e no campo criptografia você deverá gravar o resultado da criptografia do textbox de (login concatenado com o de senha).

    Quando você for validar, o cara vai digitar o login e a senha então você pesquise no banco pelo login, com os dados do banco em memoria, basta que você concatene o valor do textbox de login e senha e criptografe pelo mesmo processo, então por fim compare o resultado com o campo criptografado do banco que você tem em memoria.

    Espero que isso ajude, com esse seu código ai acima dá pra fazer isso tudo é só uma questão de pensar um pouco diferente.

    Se com essa explicação não consegui mais tarde faço um código de exemplo.

    Abraços.

    • Marcado como Resposta Fernando Mamprin quinta-feira, 6 de março de 2014 20:19
    quinta-feira, 6 de março de 2014 16:16

Todas as Respostas

  • Olá Fernando Mamprin,

    Até onde sei criptografia baseada em hash não pode ser descriptografada pois a mesma é uma sobra da informação que foi inserida, não importa o tamanho da entrada o tamanho da saída será sempre a mesma.

    Valtando ao seu problema se entendi corretamente, imagino que você tenha armazenado a password criptografada em um banco ou coisa do tipo e quer validar a mesma ao fazer login?

    então basta que você faça o mesmo processo tendo como entrada o valor do textbox da senha, ao final do processo compare se o resultado é igual ao valor armazenado no banco, se conferir login está correto.

    Espero ter ajudado.

    Abraços.

    quinta-feira, 6 de março de 2014 01:19
  • Olá Fernando Mamprin,

    Até onde sei criptografia baseada em hash não pode ser descriptografada pois a mesma é uma sobra da informação que foi inserida, não importa o tamanho da entrada o tamanho da saída será sempre a mesma.

    Valtando ao seu problema se entendi corretamente, imagino que você tenha armazenado a password criptografada em um banco ou coisa do tipo e quer validar a mesma ao fazer login?

    então basta que você faça o mesmo processo tendo como entrada o valor do textbox da senha, ao final do processo compare se o resultado é igual ao valor armazenado no banco, se conferir login está correto.

    Espero ter ajudado.

    Abraços.

    Obrigado pelo retorno cara. 

    Exatamente, necessito fazer isso para validar o login. 

    No meu caso pretendo usar Salt juntamente com a senha e o login para proteger ainda mais os dados do usuário. 

    Prezo muito pela segurança da aplicação. 

    Você tem algum código ou exemplo que utilize Salt + SHA256 ? 

    Abraço.

    quinta-feira, 6 de março de 2014 12:36
  • Então Fernando,

    Eu particularmente nunca havia visto esta palavra salt junto com criptografia, mas se entendi bem o que você deseja fazer, não parece ser muito complicado da para fazer com seu próprio código acima fazendo poucas modificações.

    Pois bem, a ideia é simples, você terá que ter em seu banco pelo menos 2 campos um para o login e outro para criptografia, nunca tenha um campo para senha especificamente.

    Quando for criar o login você vai gravar o login do usuário no campo de login e no campo criptografia você deverá gravar o resultado da criptografia do textbox de (login concatenado com o de senha).

    Quando você for validar, o cara vai digitar o login e a senha então você pesquise no banco pelo login, com os dados do banco em memoria, basta que você concatene o valor do textbox de login e senha e criptografe pelo mesmo processo, então por fim compare o resultado com o campo criptografado do banco que você tem em memoria.

    Espero que isso ajude, com esse seu código ai acima dá pra fazer isso tudo é só uma questão de pensar um pouco diferente.

    Se com essa explicação não consegui mais tarde faço um código de exemplo.

    Abraços.

    • Marcado como Resposta Fernando Mamprin quinta-feira, 6 de março de 2014 20:19
    quinta-feira, 6 de março de 2014 16:16
  • Então Fernando,

    Eu particularmente nunca havia visto esta palavra salt junto com criptografia, mas se entendi bem o que você deseja fazer, não parece ser muito complicado da para fazer com seu próprio código acima fazendo poucas modificações.

    Pois bem, a ideia é simples, você terá que ter em seu banco pelo menos 2 campos um para o login e outro para criptografia, nunca tenha um campo para senha especificamente.

    Quando for criar o login você vai gravar o login do usuário no campo de login e no campo criptografia você deverá gravar o resultado da criptografia do textbox de (login concatenado com o de senha).

    Quando você for validar, o cara vai digitar o login e a senha então você pesquise no banco pelo login, com os dados do banco em memoria, basta que você concatene o valor do textbox de login e senha e criptografe pelo mesmo processo, então por fim compare o resultado com o campo criptografado do banco que você tem em memoria.

    Espero que isso ajude, com esse seu código ai acima dá pra fazer isso tudo é só uma questão de pensar um pouco diferente.

    Se com essa explicação não consegui mais tarde faço um código de exemplo.

    Abraços.

    Cara deu certo aqui ... 

    Mas ainda sim eu utilizei Salt rs. 

    Abraço e vlw pelo retorno 

    quinta-feira, 6 de março de 2014 20:19