Ir para conteúdo
  • Cadastre-se

dev botao

Criptografia de senha com SALT


Ver Solução Respondido por datilas,
  • Este tópico foi criado há 917 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado (editado)

Olá a todos,

Tenho um projeto em Delphi onde eu criptografo a senha em MD5 e armazeno no banco, depois eu descriptografo e leio a senha.

Mas se alguém tiver acesso ao banco e executar uma função de descriptografia MD5, assim como eu, terá acesso a senha.

O Delphi tem algum tipo de criptografia com SALT? Uso isso em JS e resolve essa questão, pois o SALT ficaria gravado no código do executável e ninguém teria acesso, e sem o mesmo só a senha criptografada o banco seria inútil.

Desde já agradeço a atenção

Editado por bnobre
Postado (editado)
  Em 30/09/2022 at 13:16, bnobre disse:

Olá a todos,

Tenho um projeto em Delphi onde eu criptografo a senha em MD5 e armazeno no banco, depois eu descriptografo e leio a senha.

Mas se alguém tiver acesso ao banco e executar uma função de descriptografia MD5, assim como eu, terá acesso a senha.

O Delphi tem algum tipo de criptografia com SALT? Uso isso em JS e resolve essa questão, pois o SALT ficaria gravado no código do executável e ninguém teria acesso, e sem o mesmo só a senha criptografada o banco seria inútil.

Desde já agradeço a atenção

Expandir  

md5 é uma criptografia "só de ida" a única coisa que vc pode fazer é comparação.

para descriptografar seria preciso o uso de brute force.

sabendo disso...

funciona com delphi e lazarus.

https://github.com/viniciussanchez/bcrypt

Editado por datilas
  • Membros Pro
Postado
  Em 30/09/2022 at 15:26, datilas disse:

md5 é uma criptografia "só de ida" a única coisa que vc pode fazer é comparação.

para descriptografar seria preciso o uso de brute force.

sabendo disso...

funciona com delphi e lazarus.

https://github.com/viniciussanchez/bcrypt

Expandir  

Oi @datilas, tudo bom?

Sua explicação sobre o MD5 está correta, portanto com o acesso ao HASH completo (que foi gravado no banco) o invasor pode através de um ataque de força bruta descobrir.

Já com o SALT, se eu não estiver falando besteira, eu não teria o HASH completo no banco, teria uma parte lá e o SALT no meu código fonte, e só com os 2 eu teria o HASH completo, então para isso o invasor teria que descobrir o SALT no meu código.

Esse bcrypt usa esse conceito de SALT?

Postado (editado)
  Em 30/09/2022 at 16:11, bnobre disse:

Oi @datilas, tudo bom?

Sua explicação sobre o MD5 está correta, portanto com o acesso ao HASH completo (que foi gravado no banco) o invasor pode através de um ataque de força bruta descobrir.

Já com o SALT, se eu não estiver falando besteira, eu não teria o HASH completo no banco, teria uma parte lá e o SALT no meu código fonte, e só com os 2 eu teria o HASH completo, então para isso o invasor teria que descobrir o SALT no meu código.

Esse bcrypt usa esse conceito de SALT?

Expandir  

usa sim.

da uma lida aki:

https://vinicius-sanchez.medium.com/proteja-suas-senhas-com-seguran%C3%A7a-utilizando-o-bcrypt-9d8379860f06

Editado por datilas
  • Curtir 1
  • Membros Pro
Postado
  Em 30/09/2022 at 16:41, datilas disse:
Expandir  

Dei uma conferida aqui, mas não é isso que eu estava pensando.

O que eu queria é especificar por exemplo:

1 - Tenho uma senha "teste123" e um SALT "F881mwZnJ&29".

2 - Com os dados acima o sistema geraria uma criptografia e eu armazenaria no banco.

3 - Depois eu quero pegar esse conteúdo no banco e descriptografar (e não apenas comparar como no caso do MD5 ou do BCrypt)

4 - Sendo que para essa descriptografia eu precisaria, além da senha criptografada que está no banco, também do SALT que estaria no código do meu executável.

Postado (editado)

funcao.zipFetching info...

eu uso a função acima. vc pode adaptar para sua necessidade.

ela tem um problema quando o texto tem #13 ou #10 ou #13#10

fora isso funciona do jeito que vc precisa

tive que postar como zip

pois não estava aceitando como texto.

por isso demorei para responder.

 

Editado por datilas
  • Membros Pro
Postado (editado)
  Em 30/09/2022 at 20:27, datilas disse:

funcao.zip 824 B · 0 downloads

eu uso a função acima. vc pode adaptar para sua necessidade.

ela tem um problema quando o texto tem #13 ou #10 ou #13#10

fora isso funciona do jeito que vc precisa

tive que postar como zip

pois não estava aceitando como texto.

por isso demorei para responder.

 

Expandir  

É exatamente isso que preciso, mas por algum motivo ficou acrescentando um caracter ao final na hora de descriptografar, conforme em anexo. Sabe porque?

E outra dúvida, essa seria sobre Delphi... o que significa o trecho abaixo e onde é o local correto para colocá-lo no código (coloquei antes do implementation):

Type
 TTipoCript = (tcCript, tcDecript);

Desde já agradeço as discas

 

Editado por bnobre
  • Membros Pro
Postado
  Em 03/10/2022 at 12:10, datilas disse:

é só um type que eu criei.

vc pode alterar a função como vc quiser

Expandir  

Então... Me desculpe a ignorância, mas o que seria um TYPE? Se souber de algum texto que possa me explicar eu te agradeço.

E conseguiu ver a questão do caractere que aparece no final? Esqueci de anexar a imagem... Segue anexo.

 

Ah... O nome são tipo enumerados, achei aqui ;-)

https://drgarcia1986.wordpress.com/2011/12/07/tipos-enumerados-em-delphi/

  • Membros Pro
Postado
  Em 03/10/2022 at 12:44, datilas disse:

 

aqui esta funcionando perfeitamente.

mas estou enviando um demo em delphi.

154289363_Semttulo.png.0fe8b8784f25f849037ac566a4172110.png

 

funcao.zip 25 kB · 1 download

 

Expandir  

Descobri o que era... No meu exemplo estava pegando o valor para descriptografar de um Memo, e não de um Edit conforme você fez... Se pegar de um Memo (Memo1.Text) o valor criptografado e tentar descriptografar, tu vai ter o mesmo problema que eu...

Estranho...

Mas era isso mesmo que precisa... Valeu mesmo

Pena que o Delphi não tem algo assim nativo

  • Curtir 1
  • Este tópico foi criado há 917 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 9 segundos...