Clipper On Line • Ver Tópico - Senha do hb_ZipFile()

Senha do hb_ZipFile()

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

Moderador: Moderadores

 

Senha do hb_ZipFile()

Mensagempor Linguagemclipper » 30 Mar 2022 18:48

Olá pessoal!

Coloquei uma senha usando hb_ZipFile()
HB_ZIPFILE(cBAKFILE, aBACKUP, nLEVEL, bZIP, lOVERWRITE, cSEN1)

Acontece que na hora de descompactar, ele descompacta acertando ou não a senha. Entretanto, se errar a senha os arquivos extraídos não abrem, se acertar abre.
A senha fica dentro de cada arquivo ao invés do zip. Eu queria que nem abrisse o zip sem a senha.

HB_UNZIPFILE(cBACKUP, bUNZIP, ,cSEN1 ,".\", aEXTRACT )

Tem alguma forma ou outra função que a senha fique no zip? Não quero que abra o zip sem a senha.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar de usuário

Linguagemclipper
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 214
Data de registro: 16 Abr 2016 17:33
Cidade/Estado: Maceió/AL
Curtiu: 38 vezes
Mens.Curtidas: 12 vezes

Senha do hb_ZipFile()

Mensagempor Kapiaba » 31 Mar 2022 14:00

Boa tarde, dê uma olhada no fonte: PROC996.PRG e veja se clareia suas ideias:

https://mega.nz/file/II9GTBLZ#h4aAe8VgDqbICFsLRu8lXI5xLH-YbTq3Z3ekImYvOFg

Dúvidas, pergunte, porfa.

Regards, saludos.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Senha do hb_ZipFile()

Mensagempor Kapiaba » 31 Mar 2022 14:04

imagem:

PBACKUP2.png


Regards, saludos.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Senha do hb_ZipFile()

Mensagempor vailton » 31 Mar 2022 14:43

Lindona demais esta tela, hein Kapi?

Xonei nela, parabéns pelo visual do projeto.
Vailton Renato
"No dia mais claro, na noite mais escura... o bug sucumbirá ante a minha presença"

E-mail/MSN: contato@vailton.com.br
Skype: vailtom
Avatar de usuário

vailton
Colaborador

Colaborador
 
Mensagens: 378
Data de registro: 17 Nov 2005 18:08
Cidade/Estado: Brasil
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

Senha do hb_ZipFile()

Mensagempor Kapiaba » 31 Mar 2022 15:03

Lindona demais esta tela, hein Kapi?

Xonei nela, parabéns pelo visual do projeto.
Vailton Renato


Obrigado meu amado mestre. Fontes inclusos e free, pode usar sem moderação.

Forte abraço.

Regards, saludos.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Senha do hb_ZipFile()

Mensagempor JoséQuintas » 31 Mar 2022 15:20

Que eu saiba o ZIP sempre deixa listar o conteúdo, com ou sem senha.
A senha se refere a descompactar cada arquivo.
Inclusive, como já percebeu, cada arquivo dentro do ZIP pode ter uma senha diferente.
Talvez, quem sabe, a opção seria ter um zip dentro de outro zip. e desta forma só veria o nome do zip interno sem o conteúdo dele.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Senha do hb_ZipFile()

Mensagempor Linguagemclipper » 31 Mar 2022 16:06

JoséQuintas escreveu:Que eu saiba o ZIP sempre deixa listar o conteúdo, com ou sem senha.
A senha se refere a descompactar cada arquivo.
Inclusive, como já percebeu, cada arquivo dentro do ZIP pode ter uma senha diferente.
Talvez, quem sabe, a opção seria ter um zip dentro de outro zip. e desta forma só veria o nome do zip interno sem o conteúdo dele.


Listar é uma coisa, mas ele descompacta tudo acertando a senha ou não.
Se errar a senha cada arquivo já descompactado vai pedir senha para ser aberto/executado... mas, pede!
Se acertar a senha ele não pede senha.
O que ocorreu? Os DBFs foram descompactados com senha errada, mostra a barra de progresso de descompactuação e tudo mais, se eu der 2 cliques neles pede senha, o hb_unzip diz que falhou a descompactação, enquanto que, se eu acerto a senha, o hb_unzip diz que descompactou com sucesso e se der 2 cliques neles abre uma janela para eu escolher o programa que abre o DBF.
Para mim, se errasse a senha deveria parar por aí, nem descompactaria.
Como é que funciona afinal?
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar de usuário

Linguagemclipper
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 214
Data de registro: 16 Abr 2016 17:33
Cidade/Estado: Maceió/AL
Curtiu: 38 vezes
Mens.Curtidas: 12 vezes

Senha do hb_ZipFile()

Mensagempor JoséQuintas » 31 Mar 2022 16:37

zip -a arquivo1.dbf
zip -a arquivo1.dbf -senha abcd
zip -a arquivo1.dbf -senha 123

Será que isso cria o mesmo arquivo 3 vezes um com cada senha?
De repente é uma coisa assim que está fazendo, e por isso funciona com ou sem senha, mas não funciona com senha errada, porque nenhum arquivo atende a senha errada.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Senha do hb_ZipFile()

Mensagempor JoséQuintas » 31 Mar 2022 16:40

Adicional:

Nunca testei descompactar pelo hb_unzip, só uso o Windows mesmo.
Se hb_unzip descompactar sem senha, significa que ele quebra qualquer zip, o que acho difícil, por isso minha suspeita.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Senha do hb_ZipFile()

Mensagempor JoséQuintas » 31 Mar 2022 16:42

teste.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Senha do hb_ZipFile()

Mensagempor JoséQuintas » 31 Mar 2022 16:52

Linguagemclipper escreveu:O que ocorreu? Os DBFs foram descompactados com senha errada, mostra a barra de progresso de descompactuação e tudo mais, se eu der 2 cliques neles pede senha, o hb_unzip diz que falhou a descompactação, enquanto que, se eu acerto a senha, o hb_unzip diz que descompactou com sucesso e se der 2 cliques neles abre uma janela para eu escolher o programa que abre o DBF.
Para mim, se errasse a senha deveria parar por aí, nem descompactaria.
Como é que funciona afinal?
?

Além do mais, com certeza barra de progresso não faz parte do hb_unzip, mas sim de uma rotina do programador.
Tudo indica que foi o programador.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Senha do hb_ZipFile()

Mensagempor Linguagemclipper » 01 Abr 2022 23:25

Resolví criando uma pasta temporária. Se o Hb_unzip der sucesso eu copio para a pasta do sistema e apago a pasta, se der falha eu só apago a pasta temporária.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar de usuário

Linguagemclipper
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 214
Data de registro: 16 Abr 2016 17:33
Cidade/Estado: Maceió/AL
Curtiu: 38 vezes
Mens.Curtidas: 12 vezes

Senha do hb_ZipFile()

Mensagempor carlos_dornelas » 02 Abr 2022 10:18

Eu utilizo há vários anos assim e nunca tive problemas... porém nao utilizo a barra de progresso...

if hb_zipfile( vNome_zip,aARQ, 9, ,.t.,xsnh,.F.,.F., )

if hb_unzipfile(arq,,.f.,xsnh, , )

xharbour 0.99

[]s

Antonio Carlos
carlos_dornelas
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 392
Data de registro: 25 Ago 2004 21:54
Curtiu: 0 vez
Mens.Curtidas: 10 vezes

Senha do hb_ZipFile()

Mensagempor Linguagemclipper » 05 Abr 2022 11:59

JoséQuintas escreveu:
Linguagemclipper escreveu:O que ocorreu? Os DBFs foram descompactados com senha errada, mostra a barra de progresso de descompactuação e tudo mais, se eu der 2 cliques neles pede senha, o hb_unzip diz que falhou a descompactação, enquanto que, se eu acerto a senha, o hb_unzip diz que descompactou com sucesso e se der 2 cliques neles abre uma janela para eu escolher o programa que abre o DBF.
Para mim, se errasse a senha deveria parar por aí, nem descompactaria.
Como é que funciona afinal?
?

Além do mais, com certeza barra de progresso não faz parte do hb_unzip, mas sim de uma rotina do programador.
Tudo indica que foi o programador.


Quintas e Carlos, a barra de progresso é o 2º parâmetro do HB_UNZIPFILE() e é normalmente um codeblock.
PEDAÇO DO MEU CÓDIGO COMO DEIXEI:
// EXTRAI ARQUIVOS DO BACKUP COMPACTADO
DBCLOSEALL() // FECHA TODOS OS BANCOS DE DADOS PORVENTURA ABERTOS
         
aEXTRACT := hb_GetFilesInZip( cBACKUP )
nTOTAL := LEN(aEXTRACT)
bUNZIP := {|cFILE, nPos| PRESBAR(cFILE, nPOS, nTOTAL)}  // BARRA DE PROGRESSO: nome do arquivo, número de ordem atual, total de arquivos.
                  
// CRIA SUBPASTA TEMP
cDIRTMP := CURDRIVE()+":\"+CURDIR()+"\"+DTOS(DATE())+"\"
cCURDIR := CURDRIVE()+":\"+CURDIR()+"\"
IF ISDIR(cDIRTMP)
        // SE JÁ EXISTIR O TEMP, APAGA TUDO.
   aFILES := DIRECTORY(cDIRTMP+"*.*")
   AEval( aFiles, { |aFile| FILEDELETE( cDIRTMP+aFile[1] ) } )                        
ELSE
        // CRIA O TEMP
   nERRO := MAKEDIR( cDIRTMP )
ENDIF         
lUNZIP := HB_UNZIPFILE(cBACKUP, bUNZIP, ,cSEN1 ,cDIRTMP, aEXTRACT )
IF lUNZIP
        // ARQUIVOS FORAM EXTRAÍDOS E ESTÃO DESBLOQUEADOS SEM SENHA
   MSGRODA("SUCESSO! Copiando os arquivos para a pasta do sistema...", "W+/BG")
   // COPIA OS ARQUIVOS DESCRIPTOGRAFADOS PARA A PASTA ATUAL
   // SE ARQUIVO EXISTIR, SOBRESCREVE SEM AVISO               
   AEval( aFiles, { |aFile| FILECOPY( cDIRTMP+aFile[1], cCURDIR+aFILE[1] ) } )               
   ALERT("RESTAURAÇÃO DO BACKUP REALIZADO COM SUCESSO!")               
ELSE
   ALERT("FALHA NA RESTAURAÇÃO DO BACKUP. ERROU A SENHA?")
       // PORÉM OS ARQUIVOS FORAM DESCOMPACTADOS NA PASTA TEMP E ESTÃO BLOQUEADOS COM A SENHA
ENDIF
         
// APAGA A SUBPASTA TEMP
IF ISDIR(cDIRTMP)               
   AEval( aFiles, { |aFile| FILEDELETE( cDIRTMP+aFile[1] ) } )               
   nERRO := DirRemove( cDIRTMP )              // APAGA DIRETÓRIO TEMPORÁRIO
ENDIF

Morreu o galo... rs
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar de usuário

Linguagemclipper
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 214
Data de registro: 16 Abr 2016 17:33
Cidade/Estado: Maceió/AL
Curtiu: 38 vezes
Mens.Curtidas: 12 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Bing [Bot], Google [Bot] e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro