ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Criptografia de senhas para armazenar no BD

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
ronneipeterson
Novato
Novato


Registrado: Quarta-Feira, 22 de Agosto de 2012
Mensagens: 56

MensagemEnviada: Dom Jul 30, 2017 12:39 pm    Assunto: Criptografia de senhas para armazenar no BD Responder com Citação

Olá galera, gostaria de uma dica de como guardar de forma segura senha dentro dos BD, por exemplo preciso guardar a senha de acesso do email do cliente no BD, mas quero deixar isso de forma segura, visto que uso FIREBIRD e se qualquer um tiver acesso ao ".FDB" poderá ler os dados das tabelas se levar ele para outra máquina com a senha padrão, sendo assim, como criptografar de forma segura os dados antes de gravar. Somente embaralhar letras acredito que não seja a melhor estratégia. Alguem tem algum exemplo de como criptografar usando sha256? Ouvi falar que ele é uma ótima estratégia.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Dom Jul 30, 2017 2:18 pm    Assunto: Responder com Citação

Normalmente faço uso de criptográficas próprias, o que dificulta muito para qualquer um que leia o banco venha tentar decifrar seu conteúdo uma vez que a criptografia seja exclusivamente de minha autoria, uso frequentemente três rotinas de cifra para dados um para cada caso que eu venha necessitar.

Atualmente para Password estou a usar esta rotina aqui:

Código:
function STCripX(key, text: string): string;
  function ff(i: integer; s: string): byte;
  begin
    if (i >= 1) and (i <= length(s)) then
      result := ord(s[i])
    else
      result := 0;
  end;
var
  Ko, s: string;
  i: integer;
begin
  Ko := chr(12) + chr(02) + chr(82) + key;
  RandSeed := ff(1, text);
  s := '';
  for i := 1 to length(text) do
  begin
    s := s + inttohex(byte(ff(length(s) - 1, s) + ff(i, text) +
      ff(i mod length(Ko) + 1, Ko) + i * i + random(length(s))), 2);
    if random(length(Ko)) < length(Ko) div 2 then
      delete(s, length(s), 1);
  end;
  result := s;
end;


Ela é unidirecional, ou seja uma vez que seu conteúdo é cifrado não pode ser feito o processo contrario.

Veja se ela lhe é útil de alguma forma.
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
ronneipeterson
Novato
Novato


Registrado: Quarta-Feira, 22 de Agosto de 2012
Mensagens: 56

MensagemEnviada: Dom Jul 30, 2017 5:50 pm    Assunto: Responder com Citação

strak2012 escreveu:
Normalmente faço uso de criptográficas próprias, o que dificulta muito para qualquer um que leia o banco venha tentar decifrar seu conteúdo uma vez que a criptografia seja exclusivamente de minha autoria, uso frequentemente três rotinas de cifra para dados um para cada caso que eu venha necessitar.

Atualmente para Password estou a usar esta rotina aqui:

Código:
function STCripX(key, text: string): string;
  function ff(i: integer; s: string): byte;
  begin
    if (i >= 1) and (i <= length(s)) then
      result := ord(s[i])
    else
      result := 0;
  end;
var
  Ko, s: string;
  i: integer;
begin
  Ko := chr(12) + chr(02) + chr(82) + key;
  RandSeed := ff(1, text);
  s := '';
  for i := 1 to length(text) do
  begin
    s := s + inttohex(byte(ff(length(s) - 1, s) + ff(i, text) +
      ff(i mod length(Ko) + 1, Ko) + i * i + random(length(s))), 2);
    if random(length(Ko)) < length(Ko) div 2 then
      delete(s, length(s), 1);
  end;
  result := s;
end;


Ela é unidirecional, ou seja uma vez que seu conteúdo é cifrado não pode ser feito o processo contrario.

Veja se ela lhe é útil de alguma forma.


Agradeço a dica, porém preciso de algo seja bidirecional, que eu possa reverter, pois no exemplo citado preciso armazenar a senha do email e depois usá-la, por isso a idéia do SHA256
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB