Página 2 de 3
DBF: criptografia total e permanente
Enviado: 19 Out 2011 08:16
por rochinha
Amiguinho,
A criptografia neste caso seria segurança para que os dados não fosse manipulados após a conclusão das operações.
Arquivo criptografado é o mesmo que arquivo dentro de um cofre.
O attrib não vai suprimir esta exigencia e nem tampouco é uma segurança valida para o PAF.
Voce deve sim acahar um meio de proteger o arquivo ou o conteudo.
Se não é especificado nenhum algoritmo, use as funções de criptografia que estiver a mão ou crie a sua.
Uma forma de proteção simples mas acho que não requerida pelo PAF seria a compactação com ZIP ou RAR com senha.
Esta caracteristica pode estar aliada a segurança e veracidade dos dados de seu PAF.
DBF: criptografia total e permanente
Enviado: 19 Out 2011 09:32
por Pablo César
Acredito ter várias opções na internet e gratuitamente, uma delas é esta:
Clique aqui encontrado neste site:
http://www.codeode.com/command-line-encrypt.html
A sintaxe é bem simples:
Flags:
-encrypt Encrypts the file specified in the flag -infile.
-decrypt Decrypts the file specified in the flag -infile.
-key [yourkey] Key to use for crypting.
-filekey [filename] Filename of a file with the key to use.
-infile [filename] File to be encrypted or decrypted.
-outfile [filename] File to save the encrypted/decrypted result in.
Example 1 - encryption of a text file:
crypt.exe -encrypt -key secret -infile plaintext.txt -outfile cipher.txt
Example 2 - decryption of a file:
crypt.exe -decrypt -key secret -infile cipher.txt -outfile decoded.txt
Example 3 - encryption of a file using a file as key:
crypt.exe -encrypt -filekey mykey.txt -infile plaintext.txt -outfile cipher.txt
Observe que este aplicativo ainda pode usar um arquivo intermediário (ver opção
-filekey) para criptar e descriptar, contendo a chave. Este arquivo pode ser criado de dentro do programa feito em Clipper e depois deletá-la.
Um exemplo para criptar o arquivo:
crypt -encrypt -key teste -infile clientes.dbf -outfile clientes.old
E para descriptar:
crypt -decrypt -key teste -infile clientes.old -outfile clientes.dbf
Anexei o aplicativo para que no futuro esteja disponível caso o link deixe de existir. No entanto tenho a acrescentar que este procedimento, deverá ser acompanhado com alguma rotina que verifique se os arquivos ja estão em uso, pois numa rede esse procedimento de crypt/decrypt poderá ser inconveniente.
DBF: criptografia total e permanente
Enviado: 19 Out 2011 15:58
por Gilberto M Silva
No entanto tenho a acrescentar que este procedimento, deverá ser acompanhado com alguma rotina que verifique se os arquivos ja estão em uso, pois numa rede esse procedimento de crypt/decrypt poderá ser inconveniente.
O arquivo não depende de rede é individual para cada impressora fiscal instalada, e so consta um registro no arquivo que são atualizados de acordo com o uso da impressora e a cada inicialização do aplicativo onde tem que gerar um txt, gerar o md5 do txt e sobrepor no arquivo criptografado esse md5 é impresso no cupom fiscal.
Pablo, não entendi direito como criptografar:
crypt -encrypt -key teste -infile clientes.dbf -outfile clientes.old
key teste: seria o que?? estou fazendo estou fazendo da seguinte forma mais retorna um erro:
crypt encrypt key teste infile Empresa.dbf outfile empresa.old
retorna erro:An exception occured: the argument line should start with a flag
Um occured de exceção: a linha de argumento deveria começar com uma bandeira
DBF: criptografia total e permanente
Enviado: 19 Out 2011 20:50
por Gilberto M Silva
Resolvido criptografou legal

)
crypt -decrypt -key teste -infile clientes.old -outfile clientes.dbf
o "key teste" é um arquivo .key com por exemplo a assinatura digital gerado no puthgen.
DBF: criptografia total e permanente
Enviado: 19 Out 2011 21:13
por Pablo César
Isso mesmo Gilberto, faltavam os hífens caracterizando desta forma um switch. O "-key" é um switch onde deterna após o parametro SENHA. Teste é nada mais que a chave, password como queira chamar.
DBF: criptografia total e permanente
Enviado: 19 Out 2011 22:57
por Gilberto M Silva
Declarei da seguinte forma para cripitar descripitar:
Código: Selecionar todos
***********************************
FUNC DECODIF1 //decodifica
RUN crypt -decrypt -filekey TESTEKEY.KEY -infile EMPRESA.OLD -outfile EMPRESA.DBF //os comandos tem que estar em letra minusculas
FUNC CODIFIC1 //codifica
RUN crypt -encrypt -filekey TESTEKEY.KEY -infile EMPRESA.DBF -outfile EMPRESA.OLD
//o arquivo TESTEKEY.KEY criei no puthgen
mesmo que o arquivo Empresa.dbf fique visivel e o usuario abra-o, mais toda vez que o sistema for usar o arquivo decodifica sobrepondo-o
Pablo, tem como fazer para não aparecer a mensagem de arquivo cripitografado ou descriptografado com sucesso?? toda vez que a função e executada aparece a mensagem. tem como ser inibida??
DBF: criptografia total e permanente
Enviado: 20 Out 2011 21:45
por Pablo César
Pablo, tem como fazer para não aparecer a mensagem de arquivo cripitografado ou descriptografado com sucesso?? toda vez que a função e executada aparece a mensagem. tem como ser inibida??
Colocando ao final do comando ">nul" (sem aspas) irá redireciona a saída pra nada.
DBF: criptografia total e permanente
Enviado: 20 Out 2011 22:08
por Gilberto M Silva
Vlu Pablo, só corrigindo " >null ".
DBF: criptografia total e permanente
Enviado: 13 Jun 2014 20:05
por Eduardo Pinho
Navegando achei este forum que provavelmente ninguem mais lê, pois a ultima postagem é de 2011.
Mas achei interessante o assunto, pena que eu provavelmente seja o último terráqueo a usar clipper e não ter nenhuma intenção iminente de migrar. Como não sou profissional da área e só programo pra minha própria empresa, e os exes lá funcionam (e bem) há 20 anos, vão ficando.
E justamente por programar em benefício próprio (e faço até como passatempo) é que já criei muita coisa que jamais seria viável alguém perder tanto tempo fazendo. E uma delas foi um método de criptografia de tabelas DBF para o meu sisteminha de senhas e permissoes, onde nem a estrutura fica visível.
O DBF só tem um campo e todos os dados estao ali. O registro fisico nr 1 é onde fica toda a informacao sobre a estrutura verdadeira (verdadeira pra gente e virtual para o DBF, rsrsrs). Como se fosse um header virtual. E criei funcoes de manipulacao da tabela como:
_use([clientes],[alias],[senha]). A partir dai a senha nao é mais necessaria pois voce ja abriu a tabela.
_get([nomedocampo]) retorna o conteudo do campo nomedocampo
_replace([nomedocampo],[joao da silva]). Grava no campo nomedocampo
_locate([expressaoFOR],[expressaoWHILE]). Busca sequencial a partir do registro corrente e retorna T ou F se achou ou nao.
Select, index e seek podem ser usados normalmente, porem a chave de indexacao tem ser "index on _get([nomedocampo1])+_get([nomedocampo2]) to arqntx" que ordena e funciona redondo.
Entre outras muito úteis. Tem funcionado bem até hoje. Se alguém se interessar me escreva que envio. [editado]@[editado].com.br.
DBF: criptografia total e permanente
Enviado: 14 Jun 2014 09:28
por Toledo
Olá Eduardo, seja muito bem-vindo ao fórum!
Antecipadamente quero lhe agradecer pela sua colaboração!
Se for possível, você poderia anexar aqui neste tópico as suas funções, veja no link abaixo como anexar um arquivo na mensagem:
https://pctoledo.org/forum/viewto ... =40&t=8000
Aqui no fórum temos algumas regras, e uma delas é evitar postar o e-mail pessoal com o objetivo de receber ou oferecer qualquer auxílio que poderia ser feito aqui mesmo pelo Fórum.
Anexando as suas funções aqui no tópico, vai evitar que você receba vários pedidos e tenha o trabalho de ficar enviando suas funções, e também um número maior de usuários serão beneficiados.
Abraços,
DBF: criptografia total e permanente
Enviado: 14 Jun 2014 19:28
por Eduardo Pinho
Ok, Toledo,
Não sabia desse detalhe, mas é justo sim.
Já até recebi email pedindo, mas vou responder pra pegar aqui. To anexando umas libs nessa mensagem. E já coloquei pra download também.
CRIP.rar
- As LIB são para Clipper Summer 87
- (260.91 KiB) Baixado 369 vezes
Dá uma olhada também e diga o que achou. Como semprei programei só pra mim, ficaria satisfeito em saber que serviu pra mais algum atrasado em tecnologia como eu... rs.
Abcs
Eduardo.
DBF: criptografia total e permanente
Enviado: 14 Jun 2014 20:12
por Toledo
Eduardo, estas LIB só vão funcionar para Clipper Summer 87, então não tem como testar em outras versões do Clipper.
Para testar com o Clipper 5.2, seria necessário ter os arquivos fontes (PRG) destas LIB para recompilar com o Clipper 5.2.
Abraços,
DBF: criptografia total e permanente
Enviado: 14 Jun 2014 20:48
por Eduardo Pinho
É verdade. Não dá pra usar as funcoes mas os utilitários dá pra usar. Criar as tabelas e ver o funcionamento do método e tal.
Vou ter que vasculhar meus prgs pra separar estas funcoes. Deve tá uma zona por lá. Se eu entrar lá tenho medo de me perder e nunca mais achar a saida. kkkkkk
Brincadeira.
Eu posto os prgs e o pessoal se vira pra recompilar, né isso? Quer dizer, se é que alguém vai se interessar por esse fóssil...
Além do mais, não sei se vai precisar de alguma adaptação de código pro 5.2.
Bom, voce que entende mais disso, vê aí pra mim e vê se pode ser útil de alguma forma. Segue o novo RAR com os PRGs das LIBs.
Abcs
DBF: criptografia total e permanente
Enviado: 15 Jun 2014 12:57
por Eduardo Pinho
Uma adaptação para o código pro 5.2 que eu sei que vai ser necessária é na função _use.
No Summer quando o ultimo (ou ultimos) parametro é opcional eu dou valor a variavel recebedora ANTES do comando PARAMETERS:
private excl
excl=.f.
parameters arq,ali,senhatab,excl
Desta forma se EXCL nao for enviado, fica com o valor default .F.
No 5.2 isso não funciona e se voce não alterar o código sempre terá que enviar .T. ou .F. no ultimo parametro para dizer se quer abrir exclusivo ou nao, senao acho que vai dar erro.
Tem que trocar por algo como:
parameters arq,ali,senhatab,excl
excl=if(excl=NIL,.f.,excl)
Para abertura de tabelas modo Share, nao precisa enviar o ultimo parametro, e isso facilita um pouco a digitação.
DBF: criptografia total e permanente
Enviado: 15 Jun 2014 20:24
por Nascimento
eu nao conheço o summer87 agora a pergunta teria como passar esse codigo pra clipper 5.2 e consequentemente pra harbour?
ja que como disse nao conheço as diferenças entre o clipper5.2 e o summer87