Senha com criptografia

08/11/2007

0

Ola
Bom ja faz um tempo e um amigo aqui mesmo do forum me passou um codigo de criptografia com senha o codigo funcionaou mas na hora de gravar a senha no banco de dados apreceu o erro de string truncada aqueles erros todos. Abaixo esta o codigo da criptografia se alguem me passar uma explicacao ou ate mesmo quem postou o codigo antes....
agradeco, se tiver outra maneira de utilzar uma criptografia para ficar mais segura a aplicacao.

var md5: md5cryptoserviceprovider;
pass, criptopass: array of byte;
I: Integer;
begin
try
md5:= md5cryptoserviceprovider.create;
SetLength(pass,senha.Length);
for I:= 0 to Length(pass)-1 do
begin
pass[i]:= ord(senha.Chars[i]);
end;
criptopass:=md5.computehash(pass);
senha:=´´;
for i:=0 to Length(criptopass)-1 do
begin
senha:=Senha+Char(criptopass[i]);
end;
Result:=Senha;
finally
end;


Andremfa

Andremfa

Responder

Posts

12/11/2007

Knight_of_wine

Cara apareceu string truncada, por que o seu campo de senha no BD, é muito pequeno para a string criptografada.

Você deve criar seu campo senha com mais de 20 caracteres pelo menos.


Responder

12/11/2007

Andremfa

Cara apareceu string truncada, por que o seu campo de senha no BD, é muito pequeno para a string criptografada. Você deve criar seu campo senha com mais de 20 caracteres pelo menos.


Legal cara acho que nao tinha entendido essa criptografia... esqueci desse detalhe importantissimo de string truncada mesmo .Voce pode me explicar um pouco esse codigo??
Obrigado


Responder

13/11/2007

Knight_of_wine

[quote:183c2aa019=´Knight_of_Wine´]Cara apareceu string truncada, por que o seu campo de senha no BD, é muito pequeno para a string criptografada. Você deve criar seu campo senha com mais de 20 caracteres pelo menos.


Legal cara acho que nao tinha entendido essa criptografia... esqueci desse detalhe importantissimo de string truncada mesmo .Voce pode me explicar um pouco esse codigo??
Obrigado[/quote:183c2aa019]

É simples, primeiro você instancia o md5CryptoServiceProvider, que é o responsável por criptografar a senha.

Depois deve setar o seu tamanho para o tamanho da string digitada no textBox.

Então você faz um laço for e coloca os caracteres um a um no array.

Esse array é o parâmetro para função que vai fazer o hash e criptografar a senha, que retorna um outro array.

No final é só você varrer o array com a senha criptografada e coloar caracter por caracter em uma string, que pode ser usada como parâmetro, para comparar com o que tá no banco ou para incluir.


Responder

15/11/2007

Andremfa

[quote:a84f614462=´andremfa´][quote:a84f614462=´Knight_of_Wine´]Cara apareceu string truncada, por que o seu campo de senha no BD, é muito pequeno para a string criptografada. Você deve criar seu campo senha com mais de 20 caracteres pelo menos.


Legal cara acho que nao tinha entendido essa criptografia... esqueci desse detalhe importantissimo de string truncada mesmo .Voce pode me explicar um pouco esse codigo??
Obrigado[/quote:a84f614462]

É simples, primeiro você instancia o md5CryptoServiceProvider, que é o responsável por criptografar a senha.

Depois deve setar o seu tamanho para o tamanho da string digitada no textBox.

Então você faz um laço for e coloca os caracteres um a um no array.

Esse array é o parâmetro para função que vai fazer o hash e criptografar a senha, que retorna um outro array.

No final é só você varrer o array com a senha criptografada e coloar caracter por caracter em uma string, que pode ser usada como parâmetro, para comparar com o que tá no banco ou para incluir.[/quote:a84f614462]

Bom ficouelhor agora obrigado mas qual a grande vantagem desse código e batante funcional ate que ponto sua seguranca nessa criptografia é segura??
Obrigado


Responder

16/11/2007

Knight_of_wine

Aqui você pode tirar um pouco das suas dúvidas sobre o md5.

[url]http://pt.wikipedia.org/wiki/MD5[/url]


Responder

17/11/2007

Andremfa

Aqui você pode tirar um pouco das suas dúvidas sobre o md5. [url]http://pt.wikipedia.org/wiki/MD5[/url]


Interessante mas esse codigo que que usei na gravacao da senha no banco de dados nao teria que haver uma programcacao tb com hash na hora do usuario logar na aplicacao ou nao precisaria???
Obrigado


Responder

17/11/2007

Ara.es

ola andremfa, vc realmente precisaria ter que programar quando o usuario for logar... como o hash ´nao tem volta´ o que vc tem que fazer é: primeiro seria bom que o codigo para transformas em has fosse uma funcao, ai quando o usuario digitar a senha vc criptografa ela com o hash e compara com o que está salvo no banco.. ai saberia se está correta ou não..


Responder

17/11/2007

Andremfa

ola andremfa, vc realmente precisaria ter que programar quando o usuario for logar... como o hash ´nao tem volta´ o que vc tem que fazer é: primeiro seria bom que o codigo para transformas em has fosse uma funcao, ai quando o usuario digitar a senha vc criptografa ela com o hash e compara com o que está salvo no banco.. ai saberia se está correta ou não..

Ok entendi pelo que vc me disse teria que mudar esse codigo para funcao ou poderia comparar utilizando o mesmo ou nao???
Obrigado


Responder

17/11/2007

Knight_of_wine

Não precisa mudar o código!

O que eu fiz é justamente isso!

Eu criptografo a senha e jogo ela numa string!

Com isso você pode fazer a duas opções!

1- Gravar no banco usando a string como parâmetro.

SELECT * FROM USERS WHERE SENHA = result da função


2- Comparar com a String que foi gravada no banco, usando a string como parâmetros.

 INSERT INTO USUARIOS
(USUARIO, SENHA)
VALUES
(usuario,result da função)


Você vai sempre gravar a senha criptografada.

E vai cirptografá-la na hora de comparar também.




Responder

17/11/2007

Knight_of_wine

Opa inverti os códigos.

Desculpe.


Responder

18/11/2007

Andremfa

Opa inverti os códigos. Desculpe.

Blz Knight_of_Wine esse uso no bdpCommand no caso pq minha consulta esta la... dae utilizo essa funcao que vc passou e por ai mesmo....


Responder

19/11/2007

Knight_of_wine

Isso, é só jogar o resultado da Função na string, atribuir ela ao parâmetro senha e tá zero! ;)


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar