Criptografia e Six2
Enviado: 12 Abr 2005 11:15
Olá
Estou tentando criptografar meus bancos de dados, e executo as seguintes rotinas :
* 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 ?
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 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 ?