Criptografia no Delphi.

Delphi

02/08/2003

A pergunta é: Como guardar informações criptografadas no banco? Uso Ib6. Ou seja, eu criei, com ajuda de um livro, uma forma de criptografar textos de um memo, edit e etc... Só q, quando eu posto no banco, a msg pode ser lida de dentro do banco, e é o q eu não queria, ou seja, gostaria que ficasse guardada criptografada, póis se alguém abrisse o banco com um utilitário externo q não fosse o sistema, seria impossível a leitura dos mesmos. Eu vi isso num software de cobrança q o Bradesco disponibiliza para seus clientes, principalmente as tabelas de senha e etc... Como proceder?


Paulo

Paulo

Curtidas 0

Respostas

Daaneto

Daaneto

02/08/2003

Algo que é interessante de se pensar é que se você tiver uma função que gere uma senha única para um valor dado, você poderia armazenar esta senha normalmente no banco de dados, qualquer que seja ele.

Para saber se o usuário digitou a senha correta, seria aplicado o algoritmo que gera a senha à string fornecida e comparado o resultado com a senha armazenada no banco.

Se forem iguais, estará correta a senha, senão....

Espero não ter complicado demais.


GOSTEI 0
Werlon Goulart

Werlon Goulart

02/08/2003

Ai vai uma rotina pra criptografar usando XOR.

Um Abraço
Werlon Goulart

//Criptografa e Descriptografa Textos (Senhas).

function Encrypt( Senha:String ): String;
Const
Chave : String = ´Jesus´;
Var
x,y : Integer;
NovaSenha : String;
begin
for x := 1 to Length( Chave ) do begin
NovaSenha := ´´;
for y := 1 to Length( Senha ) do
NovaSenha := NovaSenha + chr( (Ord(Chave[x]) xor Ord(Senha[y])));
Senha := NovaSenha;
end;
result := Senha;
end;


GOSTEI 0
Cebikyn

Cebikyn

02/08/2003

Só um detalhe:
Criptografia usando XOR é uma das mais fáceis de serem quebradas...


GOSTEI 0
Werlon Goulart

Werlon Goulart

02/08/2003

É verdade, concordo com vc, pois o metodo é conhecido de todos...

Mas o quanto a criptografia do seu sistema é importante ??? Se vc esta ocultando dados super secretos use criptografia de 1024 bits, se esta apenas tentando dificultar (NENHUM metodo é 100¬ seguro...) a entrada no seu sistema pode usar o XOR que é facil de implementar e manter.

No mais se seus dados forem tão importantes e secretos assim pense em adotar rotinas bem mais poderosas q uma simples criptografacao de senhas de acesso dos usuarios do banco (Firewall e tudo mais.)

Um abraço
Werlon Goulart


GOSTEI 0
Imstaff

Imstaff

02/08/2003

A solução fazer o oposto que você está fazendo, ou seja, postar os dados criptografados. Para recuperar você usa o algorítimo ´invertido´ para descriptografar os dados que você quiser.


GOSTEI 0
Paulo

Paulo

02/08/2003

A questão não é uma criptografia muito complexa, mas sim se o usuário abrir o banco pelo IBConsole, e ler as tabelas, ele não possa entender nada, pois os dados devem estar criptografados dentro das tabelas, ele só será possível ler através da aplicação, é isso o q eu quero. Vou tentar usar pelo método XOR, para ver se é isto o q eu quero, mesmo assim agradeço a todas. Eu vi isso numa tabela em paradox, pois qdo eu abri o DataBase Desktop, estava assim as tabelas:
$@3¬;*&¨?&:3&6 e etc.. e é isso q eu quero.


GOSTEI 0
Werlon Goulart

Werlon Goulart

02/08/2003

Esta rotina funciona indo e vindo... quer dizer serve pra criptografar e Descriptografar... Tudo numa mesma rotina...

Altere a chave ´Jesus´ pra uma de seu gosto.... Mas teste antes de usar a chave nova definitivamente.... Algumas com numeros e caracteres especiais podem apresentar problemas.

Um Abraço
Werlon Goulart

//Criptografa e Descriptografa Textos (Senhas).

function Encrypt( Senha:String ): String;
Const
Chave : String = ´Jesus´;
Var
x,y : Integer;
NovaSenha : String;
begin
for x := 1 to Length( Chave ) do begin
NovaSenha := ´´;
for y := 1 to Length( Senha ) do
NovaSenha := NovaSenha + chr( (Ord(Chave[x]) xor Ord(Senha[y])));
Senha := NovaSenha;
end;
result := Senha;
end;


GOSTEI 0
Lipsil

Lipsil

02/08/2003

Oi!
como que seria feito para dar um showmessage no formcreate mostrando como ficaria esta senha?

Valew


GOSTEI 0
Rodolpho123

Rodolpho123

02/08/2003

Bem, lendo algumas mensagens acima, vi uma parte que ´nenhum método é eficaz na criptografia´. Bem, pelo menos eu entendi assim, mas existe um método que, teoricamente é IMPOSSÍVEL de ser descoberta, a cripitografia de Vernan, que utiliza uma chave e um operador OR, que, em outras palavras, É REALMENTE IMPOSSÍVEL DE SER DESCOBERTA. No momento, snão sei tudo sobre esta técnica, mas vou estudar mais e repassar para os amigos do fórum....
Valeu!!!


GOSTEI 0
POSTAR