Como encriptar e decriptar no harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Como encriptar e decriptar no harbour

Mensagem por clodoaldomonteiro »

Olá!

Eu uso as funções de encriptar e decreptar da lib do GAS, mas como essa lib é 16 bits, não dá para compilar com o xharbour, por isso queria saber se tem outra função para fazer isso.

Valeu a atenção.
Editado pela última vez por clodoaldomonteiro em 31 Out 2007 21:41, em um total de 1 vez.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pegue um help (básico) do XHarbour na minha página. Nele tem tudo ou quase tudo o que você precisa saber. Não deve ser a última versão, mas acho que pode ajudar.
Link: http://www.buzinello.com/pub/index.php? ... tutorials/
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Opa,

Sugiro usar a função hb_md5(), porém não tem volta.

Falou!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Como encriptar e decreptar no harbour

Mensagem por sygecom »

clodoaldomonteiro escreveu:Olá!

Eu uso as funções de encriptar e decreptar da lib do GAS, mas como essa lib é 16 bits, não dá para compilar com o xharbour, por isso queria saber se tem outra função para fazer isso.

Valeu a atenção.
Exemplo do Help:

Código: Selecionar todos

PROCEDURE Main
      LOCAL cText := "Hello world"
      LOCAL cKey  := "xHarbour"
      LOCAL cCipher

      cCipher := HB_Crypt( cText, cKey )

      ? cCipher

      ? HB_Decrypt( cCipher, cKey )
   RETURN
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Stanis Luksys escreveu:Sugiro usar a função hb_md5(), porém não tem volta.
MD5 é hash. Não é pra essa finalidade. Por isso não tem volta. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Mensagem por TerraSoftware »

Faz assim:

Criptografar:
var1:="Terra Software"
var2:=crypt(var1,"minha senha")

Descriptografar:
var3:=crypt(var1,"minha senha")

Observer que a funcao crypt faz tanto a criptografia como a descriptografia e ainda vc pode usar nivel de senha. Acho otima, uso muito, até hoje naum apresentou problemas. Só tomo cuidado com espaços vazios. Por exemplo, se vc tem uma variavel no banco com 20 caracteres e vc criptografa uma palavra com 14 caracteres e grava no banco, ao descriptografar a variavel do banco vc tera outro resultado diferente do original. Para evitar este problema, eu sempre criptografo a variavel inteira. Ex:

var1:="Terra Software"
var2:=var1+space(20-len(var1))
replace no_nome with crypt(var2,"senha")
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

ou pode usar o ALLTRIM() para pegar somente o que vc quer !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Voce poderá encriptar/decriptar nativamente no Harbour usando as funções da SIX Library contidas na HBSIX.LIB, bastando para isto liga-la na compilação:

sxEncrypt() e sxDecrypt()

Consulte o manual da SIX 3 para saber como usa-las.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Maligno escreveu:MD5 é hash. Não é pra essa finalidade. Por isso não tem volta. :)
Sempre usei para criptografar senhas e nunca tive problemas. Aliás é uma prática bem comum. Inclusive é bem sadio que não se possa descriptografar uma senha, e que o desenvolvedor do software não tenha acesso a ela, mantendo a privacidade do usuário.

Agora se estes dados realmente necessitam ser descriptografados depois, então realmente não serve.
Editado pela última vez por Stanis Luksys em 31 Out 2007 17:20, em um total de 1 vez.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Desculpe, Stanis. Mas encriptação sempre pressupõe a reversão para obtenção do original. Criptografia sempre tem duas mãos, ao contrário do que ocorre com o hash, que não encripta nada; apenas mistura. Mas essa confusão é até comum. Como o resultado do hash é ininteligível, confunde-se com encriptação.

E, por incrível que pareça, o hash pode sim ser revertido. E se o dado original for de tamanho pequeno, como uma senha, nem demora tanto. Mas aí é só por força bruta, claro.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Sim, eu entendo o que você quer dizer, não é de fato criptografia, mas é apenas o uso do termo. No final as vantagens por não ter volta são maiores, no caso de senhas.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Sim, eu entendo o que você quer dizer, não é de fato criptografia, mas é apenas o uso do termo.
Eu sei. Os termos acabam meio que misturados. Mas isso só causa confusão. Pra quem nem nunca ouviu falar, fica mais confuso ainda. Mais por isso que intervi.
No final as vantagens por não ter volta são maiores, no caso de senhas.
Outro dia, apenas pra teste, peguei um hash que eu havia calculado e consegui recuperar uma senha alfanumérica de seis dígitos em menos de quatro horas. Então, o termo "não tem volta" é um tanto relativo. Por isso que sempre recomendo "anexar" uma string qualquer de segurança. Aí sim, não tem jeito mesmo. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Eu mesmo me sinto inseguro, quando estou navegando num site e entro no "esqueci minha senha" e me enviam ela por e-mail do jeitinho que cadastrei.

Lembro de uma rotina de criptografia, que dava pra abrir o DBF e aplicar a senha criptografada com a que eu tinha cadastrado, e o resultado era a palavra-chave. Mesmo que se esteja usando uma função de encriptação, se algum maluco descobrir a palavra-chave, descobre a senha de todos os usuários.

Sem contar o lance da privacidade do usuário.

Mas claro que isso que falei só se aplica a senhas, outros dados, nem sempre.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Ah, sim. Mas esse esquema de enviar senha por eMail é só pra coisas de baixo nível de segurança. Além do que, basta interceptar sua conexão com um monitor de tráfego e mesmo com SSL, a senha aparece bonitinha lá. Não dá pra confiar em eMail.

Mas falando em MD5 é diferente. O simples cuidado que mencionei já faz o algoritmo super-seguro. E por um simples motivo: não se pressupõe que a string retornada seja a soma da senha com a palavra-chave. E como a string aumenta de tamanho, o tempo de tentativa-e-erro aumenta exponencialmente. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

O MD5 também não é uma fortaleza, apesar de ser uma possibilidade muitíssimo remota, duas strings diferentes podem ocasionar o mesmo resultado final, o que torna um pouco mais fácil de se aplicar o algorítmo do contrário, pois qualquer que seja o resultado que você encontre, conseguirá burlar, mesmo até não sendo a senha que o cara cadastrou!!

Mas isso é quase impossível. É bem seguro sim.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Responder