O LinuxCrypt é um componente que utiliza o algoritmo de criptografia de senhas do Linux, gerando um hash de 34 bytes que é impossível (??) de decriptografar! Bom... Então, como o linux verifica a senha do usuário? Fácil!! Basta criptografar a senha informada por ele e comparar o hash resultante com a senha armazenada no banco de dados! Para ilustrar, veja um exemplo: -> É definida uma senha para um usuário através dos seguinte comandos: LinuxCrypt.GenerateSalt := True; // Essa instrução evita a necessidade de passarmos o Salt (8 caracteres aleatórios) manualmente para a o método MD5Crypt(Senha, Salt). senha_usuario := LinuxCrypt.MD5Crypt('senha', ''); // A senha informada pelo usuário foi 'senha', mas poderia ser PChar(Edit1.Text), por exemplo. Repare que o typecast PChar() torna-se necessário quando usamos Edit's! Dependendo do valor de Salt, a senha criptografada (hash) será algo parecido com '$1$m8IlinIx$DUTJQVtvda2Yy2CpFfcux1'. Esse valor será atribuído à variável senha_usuario. Repare os 8 caracteres entre o segundo $ e o último $, 'm8IlinIx'. Esse foi o Salt gerado automaticamente pelo componente e deverá ser usado no momento de verificação de senhas. -> Verificando se a senha digitada confere: LinuxCrypt.GenerateSalt := False; // Precisaremos passar o Salt manualmente (m8IlinIx) para a função MD5Crypt, para verificar se o hash retornado confere com o armazenado. if LinuxCrypt.MD5Crypt(senha_informada_pelo_usuario, Copy(senha_usuario, 4, 8)) = senha_usuario then ... // Nesse instante estamos passando a string da variavel senha_informada_pelo_usuario, juntamente com o salt gerado anteriormente (Copy(senha_usuario, 4, 8), que é igual à m8IlinIx) e verificando se o valor do retorno é igual à senha criptografada anteriormente ('$1$m8IlinIx$DUTJQVtvda2Yy2CpFfcux1'). Se o usuário informou 'senha', o retorno será exatamente o hash gerado anteriormente e assim, podemos verificar que as senhas são iguais. Esse é exatamente o procedimento que o Linux utiliza quando vc entra com o usuário e senha na tela de login. A senha não pode ser descriptografada, mas nada impede que criptografamos algo digitado pelo usuário e comparamos com o hash armazenado no banco de dados!! Boas Criptografias!! Bruno Freitas