Encriptando senha... ajudem-me por favor!

Delphi

05/06/2003

Olá.
Sou nova aqui e infelizmente ainda leiga em Delphi (já pesso perdao desde já).
Faço faculdade de Sistema de Informação e estou numa disciplina onde temos que desenvolver um programa.
Não sou a programadora (deu pra ver, ne? rs), mas fiquei com a missao de encontrar uma maneira de resolver um problema.
Nosso sistema usa banco de dados do access...
Gostaria de saber se alguem sabe como encriptar a senha para salvar no access, para que algum usuário mal intensionado nao abra simplesmente o access e veja o nome de usuario e respectiva senha gravados la.

Desde ja agradeco a colaboracao e atencao.

Ate mais


Danijackson

Danijackson

Curtidas 0

Respostas

Eguinaldo

Eguinaldo

05/06/2003

O Seguinte, porque em vez de tu encriptar a bendita senha
tu nao coloca uma senha direta no bando de dados do access
dai se o sujeito nao tiver autorizacao ele nem mexe no teu banco de dados !


GOSTEI 0
Eguinaldo

Eguinaldo

05/06/2003

Bem se tu quiser se meter envao vai umas funcoes para encriptar bem simples !

Funcao 1 :idea:

program Crypt;


uses WinCRT;


const
C1 = 52845;
C2 = 22719;


function Encrypt(const S: string; Key: Word): string;
var
I: byte;
begin
Result[0] := S[0];
for I := 1 to Length(S) do
begin
Result[I] := char(byte(S[I]) xor (Key shr 8));
Key := (byte(Result[I]) + Key) * C1 + C2;
end;
end;


function Decrypt(const S: string; Key: Word): string;
var
I: byte;
begin
Result[0] := S[0];
for I := 1 to Length(S) do
begin
Result[I] := char(byte(S[I]) xor (Key shr 8));
Key := (byte(S[I]) + Key) * C1 + C2;
end;
end;


var
S: string;
begin
Write(´>´);
ReadLn(S);
S := Encrypt(S, 12345);
WriteLn(S);
S := Decrypt(S, 12345);
WriteLn(S);
end.


Funcao 2 :shock:


Function Codifica( const Str1: string): String;
var
Mascara,Str2: String;
PonM, PonS: Byte;
begin
Mascara := ´#$¬$´1312;
Str2 := ´´;
PonM := 1;
for PonS:=1 to length(Str1) do
begin
AppendStr( Str2, Chr( Ord(Str1[PonS]) Xor Ord(Mascara[PonM])));
Inc( PonM);
if PonM>Length(Mascara) then
begin
PonM:=1;
end;
Result := Str2;
end;
end;


Funcao 3 :wink:

Se nao der certo tu rezas um pouco e me manda um mail

eguinaldo@terra.com.br


GOSTEI 0
Imoreira

Imoreira

05/06/2003

De uma olhada em:
[url]http://pessoal.onda.com.br/fabiomauriciof/dicas_delphi.htm#Criptografia¬20-¬20codifica¬20uma¬20string[/url]


GOSTEI 0
Celo-faveri

Celo-faveri

05/06/2003

Olá!
Bem, a idéia de encriptar só o banco de dados foi boa, mas como sabemos há alguns programas espalhados pela net que quebram facilmente a senha do access pois a senha dele é totalmente baseada na chave(senha), que eu saiba, talvez não seja verdade, o que sei é que o programa que quebra a senha baseia-se nisso, isto é, quando a ´chave abre´ o programa identifica e mostra a senha. (meio confuso, mas não vem ao caso). Não vou criar um algoritmo agora, mas recomendo dois componentes de encriptação

Compendium, tem chaves que chegam à 2048bits; porém é meio complicado de usar.
página: o compendium não tem página própria, porém vc pode fazer o download através do Torry.Net: [url]http://www.torry.net/vcl/security/strong/chipher.zip[/url]
DCPCipher, chave chega à 512bits; um pouco mais fácil de usar.
página: [url]http://www.cityinthesky.co.uk/cryptography.html[/url]

Mas se o sistema que vc tá criando não exige chaves tão grandes, como a do Blowfish, ou a do RC(4,5,6), ou pessoas com super computadores dispostas à invadir seu sistema, use as funções que o camarada eguinaldo passou pra ti.

T+ :wink:


GOSTEI 0
POSTAR