HB_Base64Encode(): funcão e exemplos

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

Moderador: Moderadores

Maya Fiuza
Usuário Nível 2
Usuário Nível 2
Mensagens: 50
Registrado em: 11 Out 2010 19:38
Localização: Foz do Iguaçu-PR
Contato:

HB_Base64Encode(): funcão e exemplos

Mensagem por Maya Fiuza »

Olá Fórum!
Um cliente pede para cifrar todos os dados de 3 tabelas (diversos campos numéricos, strings e data).
Alguém teria um exemplo de uso da HB_Base64Encode() ou de outra função [x]Harbour. Não quero usar LIBs de terceiros.
Obrigada.
Harbour III, Qt Framework, HMG's, OOHG
2xExplorer, cxIDE, xEdit, EditPad
SQLite, MySQL, DBF
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: HB_Base64Encode(): funcão e exemplos

Mensagem por Maligno »

Base64 não é utilizado em criptografia. É um método utilizado para codificar conjuntos de dados por meio de uma tabela fixa de 64 caracteres (RFC989). É muito utilizado para transporte de arquivos (principalmente binários) em clientes de correio. Aliás, pode-se dizer que é o primo "rico" do UUEncode.

Para criptografia você terá de utilizar outro recurso. Talvez possa criar o seu próprio algoritmo. Não é tão complexo.
[]'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!
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

Re: HB_Base64Encode(): funcão e exemplos

Mensagem por anacatacombs »

A mais comum, é por substituição. Por exemplo, a letra A corresponde a "Z".
Realmente não é complexo, no entanto, é preciso elaborar um algoritmo mais complexo para dificultar a quebra da criptografia.
Maya Fiuza
Usuário Nível 2
Usuário Nível 2
Mensagens: 50
Registrado em: 11 Out 2010 19:38
Localização: Foz do Iguaçu-PR
Contato:

Re: HB_Base64Encode(): funcão e exemplos

Mensagem por Maya Fiuza »

Então... Uma tabela tem 987.000 registros/24 colunas, outra 512.00 reg/4 col e outra varia de 200.000 a 800.000 reg /56 col.
Preciso deixar cifradas, e apenas o app ler e add cifrado. Estou receosa de que uma UDF não escrita em assembler ou C, sacrifique a velocidade.
Lendo alguns tópicos, tentei usar a SIX (parece ter este propósito), mas não consegui. Alguém poderia postar um curto exemplo da HBsix?
Harbour III, Qt Framework, HMG's, OOHG
2xExplorer, cxIDE, xEdit, EditPad
SQLite, MySQL, DBF
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: HB_Base64Encode(): funcão e exemplos

Mensagem por Maligno »

Estou receosa de que uma UDF não escrita em assembler ou C, sacrifique a velocidade.
Pelas quantidades que citou, sua preocupação faz todo sentido.
[]'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!
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: HB_Base64Encode(): funcão e exemplos

Mensagem por rochinha »

Amiguinha,

Sua preocupacao é manter sigilosos os dados dos registros somente, sem mexer na estrutura.

Bom, no meu caso, eu uso a criptografia do conteudo em tempo de execução, ou seja, quando o sistema pega os dados do registro, identifica se o mesmo esta criptografado e desgrafa, mostra nas telas e permite alteração, grafando novamente ao salvar o registro.

Neste tópico apresento uma solução totalmente livre de terceiros.

Analise, modifique, melhore e use.
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.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: HB_Base64Encode(): funcão e exemplos

Mensagem por Toledo »

Dê uma olhada neste exemplo:

Código: Selecionar todos

#include "dbinfo.ch"

procedure main()

     local aStruct := { ;
         { "Nome", "C", 30, 0 }, ;
         { "Endereco", "c", 25, 0 }, ;
         { "Niver", "D", 8, 0 } ;
     }

     Set Century On
     Set Date To British

     request dbfcdx
     rddsetdefault("DBFCDX")
     if !file("teste.dbf")
      dbcreate("teste", aStruct)

      use teste

      teste->( dbappend() )
      teste->nome := "Paulo Cesar Toledo"
      teste->Endereco := "Rua Afonso Pena, 1277"
      teste->niver := ctod("29/05/1962")
      teste->( dbappend() )
      teste->nome := "Maya Fiuza"
      teste->Endereco := "Rua dos Maias, 1122"
      teste->niver := ctod("10/12/1985")
     else
      use teste
     endif
     go top
    
     //Encrypta os registros atraves de uma senha
     teste->( dbinfo( DBI_ENCRYPT,"pctoledo" ) )
     go top
     Browse()
     teste->( dbclosearea() )  //fecha o arquivo

     //Abre o arquivo, mas os registro estao encryptados
     use teste
     Browse()

     //informando a senha correta, os registro podem ser vistos corretamente
     teste->( dbinfo( DBI_PASSWORD, "pctoledo" ) )
     Browse()
     teste->( dbclosearea() )

return
Utilizei o Harbour 2.1.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Maya Fiuza
Usuário Nível 2
Usuário Nível 2
Mensagens: 50
Registrado em: 11 Out 2010 19:38
Localização: Foz do Iguaçu-PR
Contato:

Re: HB_Base64Encode(): funcão e exemplos

Mensagem por Maya Fiuza »

Olá, fico agradecida por todos os exemplos!
Toledo, mais uma vez sua indicação foi fantástica, caiu como uma luva! Novamente, muito grata.

Em tempo: existe algum manual do Harbour 2.0?
Onde posso obter uma descrição detalhada (qualquer idioma) das novas funções do Harbour?
Queria ver mais detalhes da DbInfo( )...
Harbour III, Qt Framework, HMG's, OOHG
2xExplorer, cxIDE, xEdit, EditPad
SQLite, MySQL, DBF
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: HB_Base64Encode(): funcão e exemplos

Mensagem por Toledo »

Maya, dê uma olhada neste link, acho que já ajuda:

Procure em "Functions"/"Functions by name"
http://www.oohg.org/manual/harbour/

Para mais detalhes sobre os parâmetros desta função (DBINFO), veja o arquivo dbinfo.ch na pasta \INCLUDE do seu Harbour.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder