Não é muita coisa, como eu disse, só é preciso passar a chave e o caminho e nome do arquivo a ser encriptografado (C:\Temp\Texto.txt). Ao executar o método EncryptFile() o componente automaticamente gera o encriptografado com o mesmo nome do arquivo original mas com extensão BFH. Segue o código: --- BFH.Keyword := 'chave'; BFH.EncryptFile(DirectoryOutline1.Directory + 'P' + IntToStr(Protocolo) + '.zip'); ---
As outras propriedades são as defaults do componente. Conforme entrei em contato com o desenvolvedor do componente, quando ele gera o arquivo encriptografado, além de incluir os dados encriptografados do arquivo, ele inclui outras informações. Segue a explicação do autor: --- Every BFH file has a _additional_ header: TBFHHeader = packed record Signature: Array[0..2] of Char; Version: Byte; CRC32: LongInt; ulCBCLeft, ulCBCRight: LongInt; end; And a _additional_ file info block: TOrigInfo = packed record Name: Array[0..255] of Char; Size: LongInt; Date: LongInt; end; Behind this append your encoded text. For further information they look please into the file "bfh.pas". --- Vai em anexo um arquivo encriptografado junto com o seu original, a palavra chave utilizada foi "chave". Andei pesquisando mais, inclusive em outros providers, e vi que o caso trata-se de Password Based Encrypt (PBE) mas parece que também é necessário utilizar um algoritmo pra gerar uma chave (classe SecretKey) a partir do password mas o provider não suporta fazer isso com o Blowfish, apenas utilizando outros algoritmos. Isso me dá a impressão que não é o caminho certo. Abraços Bruno H. H. ----- Original Message ----- From: "Lusoujava" <[EMAIL PROTECTED]> To: "Bruno Henrique Hjort" <[EMAIL PROTECTED]> Sent: Wednesday, March 19, 2003 10:17 PM Subject: Re: [java-list] Criptografia - Delphi <> Java > Caro Bruno, > > Vc poderia enviar para mim o trecho de código que Vc utilza o componente > e ainda, um dado encriptado gerado pelo componente. > > Com estas informações espero te ajudar mais. > > [ ]´s > Luciano da Silva Coelho > [EMAIL PROTECTED] > Sun Certified Programmer for JAVA2 > Sun Certified Web Component Developer for J2EE > Sun Certified Instructor for JAVA2 > e-Sec Tecnologia em Segurança de Dados > www.esec.com.br > ----- Original Message ----- > From: "Bruno Henrique Hjort" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]>; "Lusoujava" <[EMAIL PROTECTED]> > Sent: Wednesday, March 19, 2003 5:07 PM > Subject: Re: [java-list] Criptografia - Delphi <> Java > > > > E-mail Premium BOL > > Antivírus, anti-spam e até 100 MB de espaço. Assine já! > > http://email.bol.com.br/ > > O tipo de encadeamento é o CBC. Andei estudando o fonte do componente > Delphi > > que faz a criptografia mas ainda assim não consegui descobrir o tamanho da > > chave ou a questão dos vetores de inicialização (CBC necessita?). Na > > especificação (www.sksoft.de/bfh.htm) o autor do componente só diz que a > > chave pode ser de até 448 bits (característica do Blowfish, certo?). Ao > > usá-lo no Delphi, a única coisa que passamos como parâmetro para > > criptrografar ou descriptografar um arquivo é o nome do arquivo e a chave > > (uma string "chave", por exemplo). Desculpa, sou novo no assunto, mas qual > > seria a diferença de uma chave de 32 para uma de 64 sendo que estamos > usando > > strings? > > > > Pesquisando encontrei, entre outros, esse modo de criar a chave mas ainda > > estou inseguro quanto à sua aplicabilidade para o meu caso. Principalmente > > porque, ao que me parece, ele utiliza um gerador randômico e no caso eu > > tenho uma chave já especificada. > > > > // Gera a chave > > SecureRandom sr = new SecureRandom(psChave.getBytes()); > > KeyGenerator keyGenerator = KeyGenerator.getInstance("Blowfish"); > > keyGenerator.init(448, sr); // 448 ??? > > chave = keyGenerator.generateKey(); > > > > Digamos que o tamanho da minha chave seja realmente 448 e que eu não > > necessite de um vetor de inicialização, este código funcionaria? > > > > Muito agradecido > > > > Bruno H. Hjort > > > > > > > > ----- Original Message ----- > > From: "Lusoujava" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Wednesday, March 19, 2003 8:55 AM > > Subject: Re: [java-list] Criptografia - Delphi <> Java > > > > > > > Caro Bruno, > > > > > > O Blowfish é uma cifra em bloco e cuja chaves podem variar de 32 a > 448 > > > bits (ver http://www.counterpane.com/blowfish.html). Sendo assim Vc > > deveria > > > estar atento a três coisas pelo menos: > > > A) Qual tipo de encadeamento de blocos está sendo utilizado pelo seu > > > programa em Delphi (ECB, CBC, etc); > > > B) Caso o tipo de encadeamento utilizado necessitard e um vetor de > > > inicialização, qual IV foi utilizado no Delphi; > > > C) Qual o tamanho da chave utilizada no Delphi. > > > > > > Espero que isto traga alguma luz para a solução do seu problema. > > > > > > [ ]´s > > > Luciano da Silva Coelho > > > [EMAIL PROTECTED] > > > Sun Certified Programmer for JAVA2 > > > Sun Certified Web Component Developer for J2EE > > > Sun Certified Instructor for JAVA2 > > > e-Sec Tecnologia em Segurança de Dados > > > www.esec.com.br > > > ----- Original Message ----- > > > From: "Bruno Henrique Hjort" <[EMAIL PROTECTED]> > > > To: <[EMAIL PROTECTED]> > > > Sent: Monday, March 17, 2003 2:49 PM > > > Subject: [java-list] Criptografia - Delphi <> Java > > > > > > > > > > E-mail Premium BOL > > > > Antivírus, anti-spam e até 100 MB de espaço. Assine já! > > > > http://email.bol.com.br/ > > > > Olá lista > > > > > > > > Estou trabalhando em páginas em JSP e preciso descriptografar um > arquivo > > > > criptografado no Delphi através do algoritmo Blowfish (componente - > > > > http://home.t-online.de/home/kirbach) mas o resultado não está sendo > > > > compatível. Já consegui fazer uma classe em java que criptografa e > > > > descriptografa um arquivo, mas só descriptografa os arquivos gerados > por > > > ela > > > > mesmo. Não tenho certeza se é porque estou gerando a chave > > incorretamente, > > > > por estar especificando parâmetros diferentes ou por incompatibilidade > > > > mesmo. > > > > Quanto às chaves, nas documentações e exemplos já vi várias maneiras > de > > se > > > > gerar uma. Digamos que a chave com que o criptografado foi gerado seja > > > > "UrsoPolar", o seguinte código serviria para instanciar minha chave no > > > java? > > > > > > > > byte[] desKeyData = ("UrsoPolar").getBytes(); > > > > SecretKeySpec chave = new SecretKeySpec(desKeyData, "Blowfish"); > > > > > > > > PS.: estou desenvolvendo no JDK 1.3.1 com o JCE Provider do Cryptix. > > > > > > > > Desde já, obrigado. > > > > > > > > Bruno H. H. > > > > > > > > >
encriptografando um bloco de texto.
teste.BFH
Description: Binary data
------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------