 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
ronneipeterson Novato

Registrado: Quarta-Feira, 22 de Agosto de 2012 Mensagens: 56
|
Enviada: Dom Jul 30, 2017 12:39 pm Assunto: Criptografia de senhas para armazenar no BD |
|
|
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 |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Dom Jul 30, 2017 2:18 pm Assunto: |
|
|
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 |
|
 |
ronneipeterson Novato

Registrado: Quarta-Feira, 22 de Agosto de 2012 Mensagens: 56
|
Enviada: Dom Jul 30, 2017 5:50 pm Assunto: |
|
|
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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|