Criptografia e Six2

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Anderson J. Freitas
Usuário Nível 1
Usuário Nível 1
Mensagens: 46
Registrado em: 19 Fev 2005 10:34
Localização: Caratinga-MG

Criptografia e Six2

Mensagem por Anderson J. Freitas »

Olá

Estou tentando criptografar meus bancos de dados, e executo as seguintes rotinas :

Código: Selecionar todos

 
//Para criptografar:

#include 'sixnsx.ch'
rddsetdefault('sixnsx')
new_abre('duplicat','f:\ols\teste\',.t.,'gif')
sx_setpass('ajf')
sx_dbfencrypt()
close data

//Para abrir e indexar

ferase('duplicat.nsx')
if new_abre('duplicat','f:\ols\teste\',.t.,'gif')=1
   close data
   return nil
endif
sellog = select()
if !file('log.dbf')
   novoarq('log',{{'data','d',8,0},{'hora','c',8,0},{'arquivo','c',35,0},;
          {'chave','c',20,0},{'usuario','c',35,0},{'programa','n',10,0}})
endif
use log new shared
select(sellog)
aux = indexkey()
set filter to deleted()
go top
do while !eof()
   aux2 = &aux
   select log
   adireg(0)
   replace data with date(),hora with time(),arquivo with logarquivo,;
      chave with aux2,programa with prog,usuario with gifusuario
   select(sellog)
   skip
enddo
select log
use
select(sellog)
pack
aux1 := {'loja+numero','loja+cliente+dtos(vencimento)',;
            'loja+dtos(vencimento)+numero','loja+vendedor+dtos(vencimento)',;
            'loja+banco+dtos(emissao)+numero','loja+banco+dtos(pagamento)+nume
            'loja+banco+dtos(vencimento)','loja+vendedor+dtos(pagamento)',;
            'loja+dtos(pagamento)','loja+pedido',;
            'loja+dtos(emissao)','loja+nosso'}
for x = 1 to len(aux1)
     aux2 = chr(64+x)
     aux3 = aux1[x]
     index on &aux3 tag &aux2 eval prog(x,aux1) every lastrec()/100
next

function new_abre(arq,rota,uso,sys)
*-------
 local abarq:=rota+arq+"."+sys,abind:=rota+arq,inicio:=time()
 if !file(abarq)
    @12,12 say  'Arquivo '+trim(abarq)+' nao encontrado!'
    return 1
 endif
 if uso
    use &abarq new exclusive
  else
    use &abarq new shared
 endif
 if neterr()
    telnet = sombra(10,11,14,68)
    do while neterr()
       @ 12,12 say 'Arquivo '+trim(arq)+' em uso! Aguardando liberacao..
       if uso
          use &abarq new exclusive
         else
          use &abarq new shared
       endif
    enddo
    rests(telnet)
 endif
 if !uso .and. !file(abind+'.nsx') .and. lastrec() > 1
    @12,12 say 'Indice '+trim(abind)+'.nsx nao encontrado!'
    return 1
   elseif file(abind+'.nsx')
    set index to &abind
 endif
 if sx_tabletype() = 2
    sx_setpass('ajf')
 endif
Return 0

function prog(info1,info2)
*-----
 local nporc := int(recno()/lastrec()*100)
 @13,11 say 'Indexando '+lower(dbf())+' - '+strzero(info1,if(info1>9,2,1),0)+;
            ' de '+strzero(len(info2),if(len(info2)>9,2,1),0)+' indice(s) - '+;
            transf(nporc,'999')+'% concluido'
return .t.
* No XTGold -> Ao visualizar o arquivo os dados aparecem sem criptografia.

* No DBMax -> Ao abrí-lo aparece a tela de senha, se não digitar a senha, abre sem criptografia. Se eu mudar algum registro e salvar, somente o registro modificado fica criptografado. Se eu digitar a senha, mudar algum registro, salvar, fechar e abrí-lo novamente, o registro modificado fica criptografado e não volta ao normal.

* No DBMax -> Arquivos sem criptografia ocorre o mesmo citado acima(exceto aparecer tela de senha)

* No DBNSX -> Ao abrí-lo surge a tela de corrupção :
" Error DBFNSX/1012 Corruption detected: "

Não estou conseguindo enxergar o erro, alguém pode me ajudar ?
Pitbull

Clipper 5.2e, Exospace, Six2, DBMax
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

Me envie seu dbf.
Qdo vc executa a função de criptogragar ela retorna true ou false.
Vc verificou se a criptografia foi executada com sucesso.


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




Avatar do usuário
Anderson J. Freitas
Usuário Nível 1
Usuário Nível 1
Mensagens: 46
Registrado em: 19 Fev 2005 10:34
Localização: Caratinga-MG

Mensagem por Anderson J. Freitas »

Dudu, não enviei o arquivo porque descobri um virus na rede que estava corrompendo todos os arquivos. Eliminei-o e agora funcionou.

Agradeço a atenção

:D
Pitbull

Clipper 5.2e, Exospace, Six2, DBMax
Responder