Ir para conteúdo
  • Cadastre-se

dev botao

Dúvida sobre MD5


Ver Solução Respondido por Cleber Ferreira,
  • Este tópico foi criado há 2930 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores
Postado

Boa tarde a todos!

Eu andei olhando no fórum os tópicos falando sobre MD5, mas fiquei bastante confuso. Olhei os componentes ACBrPAF, ACBrEAD, ACBrAAC.

Minha curiosidade foi pelo seguinte: Eu vejo que em muitos bancos de dados (tabela de produtos, empresa usuária, cupons, itens dos cupons, etc...) muitos tem um campo de MD5. Afinal, o que é gravado la? o ACBr já gera essa informação pra mim? Como fazer???

Realmente estou perguntando pois não consegui entender apenas pelos tópicos existentes. Estou iniciando no PAF, então são muitas dúvidas...

Agradeço desde já...

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

  • 4 meses depois ...
Postado

Cleber, estou com a mesma dúvida que você. 

Você conseguiu alguma resposta?

Também estou iniciando no desenvolvimento de PAF e confesso que estou perdida em relação às informações que devo passar ao ECF, comprei uma código de exemplo e nem sequer consegui iniciá-lo corretamente para os testes.

Ele me diz que o ECF não foi autorizado, pois aparentemente tenho que passar alguns parametros, inclusive esse arquivo MD5.

Se já tiver conseguido esclarecer, e puder me ajudar, eu agradeço.

  • Moderadores
Postado

Boa tarde 

Vai depender da tabela que estiver trabalhando 

digamos no cupom você ira guardar todos os campos que serão verificados para validar se não foi alterado do bloco 7

lá no cupom fiscal por exemplo , ccf , coo, valor etc etc. + uma chave que você vai conferir

em tempo de execução se esse valor vai bater ou não e assim preencher a informação no registro para sair o ?????? ou não

 

deu pra entender?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Moderadores
  • Solution
Postado (editado)

Cleber, estou com a mesma dúvida que você. 

Você conseguiu alguma resposta?

Também estou iniciando no desenvolvimento de PAF e confesso que estou perdida em relação às informações que devo passar ao ECF, comprei uma código de exemplo e nem sequer consegui iniciá-lo corretamente para os testes.

Ele me diz que o ECF não foi autorizado, pois aparentemente tenho que passar alguns parametros, inclusive esse arquivo MD5.

Se já tiver conseguido esclarecer, e puder me ajudar, eu agradeço.

 

Bom dia Tati!

 

A questão do MD5 é gravar o mesmo em cada tabela necessária para a criação dos arquivos txt que pede na ER. Quando vende um item por exemplo, registra ele no banco correto? Após é preciso ter um campo para armazenar o MD5 desse registro gravado. Eu me fiz algumas perguntas para sanar essa dúvida:

 

1 - Como é composto o MD5?

 

Simples. Cria-se uma string com todas as informações do registro (campo1 + campo2 + campo3, etc...). E no final recomendo colocar uma chave privada, assim ninguém conseguirá descobrir a composição do MD5 gerado.

 

2 - Como gera-lo?

 

Tenho uma rotina onde passo uma query de consulta que possui somente o registro que está sendo trabalhado. A rotina vai passando por todos os campos somando-os e no final acrescento a minha chave privada, criptografo ele para MD5 e pronto! Depois é só gravar o código no respectivo campo do registro trabalhado. Eu optei por query, mas pode-se também passar os valores dos campos diretos.

 

3 - Para que serve esse MD5?

 

Ao gerar os arquivos eletrônicos (txt) exigidos pela ER, pede-se para informar se o registro é válido ou não.

 

4 - Como informar se o registro é válido?

 

No momento da geração dos arquivos, deverá ser gerado o MD5 novamente do registro no banco e comparar com o MD5 que já havia sido gravado anteriormente. Se forem iguais, registro válido. Caso contrário, registro inválido.

 

5 - De quais tabelas preciso ter o MD5?

 

Veja na ER que em cada anexo é discriminado o tipo de informação necessária para gerar os arquivos. Por exemplo: tem arquivo onde é informado o cadastro de produtos do PAF. Outro pede para informar os DAV emitidos. Então já é sabido que estas respectivas tabelas no seu banco devem possuir o MD5 em cada registro.

 

6 - Preciso criar o MD5 somente dos campos exigidos na geração dos arquivos constantes na ER?

 

Não. Sempre vamos precisar de um campo a mais nas nossas tabelas. Obrigatoriamente tem que se criar o MD5 pelos menos dos campos exigidos, mas para facilitar a vida e evitar confusões já cria de todos os campos de uma vez.

 

7 - Afinal de contas, qual o objetivo de se ter o MD5 e informar se o registro é válido ou não nos arquivos eletrônicos?

 

Simples. Na homologação, são realizados testes onde vão ser alteradas informações na base de dados e posterior geração dos arquivos eletrônicos. Tem como objetivo destacar caso o usuário entre em uma tabela e altere o registro manualmente, fora do programa aplicativo fiscal.

 

Espero ter lhe ajudado a esclarece não somente sua dúvida, mas também a de muitos colegas. São informações que colhi durante várias buscas no fórum. Me desculpe se esqueci de alguma coisa a respeito ou algo que não ficou muito claro.

 

Abraço

Editado por Cleber
  • Curtir 1

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

  • Consultores
Postado

Ele me diz que o ECF não foi autorizado, pois aparentemente tenho que passar alguns parametros, inclusive esse arquivo MD5.

 

Erro de "ECF não autorizado" é um outro problema. Não confunda o arquivo auxiliar criptografado (AAC) com o MD5 para verificação de alteração de dados mencionado pelo Cleber.

 

 

Espero ter lhe ajudado a esclarece não somente sua dúvida, mas também a de muitos colegas. São informações que colhi durante várias buscas no fórum. Me desculpe se esqueci de alguma coisa a respeito ou algo que não ficou muito claro.

 

Abraço

Sua resposta foi muito boa, concisa e completa. :geek:

Acho que você pode marcar seu post como resolvido marcando sua própria resposta.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Moderadores
Postado

 

Erro de "ECF não autorizado" é um outro problema. Não confunda o arquivo auxiliar criptografado (AAC) com o MD5 para verificação de alteração de dados mencionado pelo Cleber.

 

 

Sua resposta foi muito boa, concisa e completa. :geek:

Acho que você pode marcar seu post como resolvido marcando sua própria resposta.

 

Bom dia Elton!

 

Obrigado!

 

Veja o contraste do meu primeiro post para o segundo. É um exemplo claro do quão é importante dar uma vasculhada no fórum em busca não das soluções, mas sim do entendimento.

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

  • 2 meses depois ...
Postado

Pessoal, desculpe reviver o tópico, mas continuo muito confuso com relação a questão do MD5..

Pelo que o Cleber disse eu entendi que por exemplo quando abro um cupom armazeno algumas informações na tabela cupom

ex:  data de emissao, numero, coo, ccf etc..

 

quando realizo a abertura do cupom tenho que ter um campo na tabela cupom MD5 que gera um md5 com as informações Cidatas??

mesma coisa para cada item que incluir no cupom??

 

eu achava que o MD5 era uma chave que era gerada somente uma vez e sempre verificavamos a autenticidade do meu aplicativo conferindo essa mesma chave..

 

alguém pode tentar explicar.. ou exemplificar de uma forma mais clara a real utilizade do MD5... e o MD5 não tem nada a ver com a identificação do PAF-ECF???

 

Grato!

  • Consultores
Postado
alguém pode tentar explicar.. ou exemplificar de uma forma mais clara a real utilizade do MD5... e o MD5 não tem nada a ver com a identificação do PAF-ECF???

Olá,

  a sua dúvida é parecida com a da Tati que eu respondi ali acima. MD5 é um hash utilizado em vários lugares para verificar integridade. Isso acontece com o arquivo executável, (que é o que você mencionou), e com os dados (que é o caso mencionado pelo Cleber). Ambos os casos são requisitos do PAF-ECF. Mas são requisitos distintos.

  Veja que no primeiro post o Cleber menciona sobre o MD5 estando em várias tabelas de banco de dados. Esse não é o MD5 que valida os executáveis do PAF-ECF, ou seja, o MD5 que deveria ficar armazenado no AAC. É um MD5 que valida os registros e tabelas que não podem ser alterados por fora do seu PAF. Na verdade são vários MD5, um para cada registro que precisa ser validado.

 

  Só para finalizar, os requisitos  na versão 1.13 da ER são:

 

  1. Alínea “c” do Item 1 do requisito IX (Identificação do Executável PAF)
  2. Testes do Bloco VII do Roteiro de análise da ER (Integridade dos dados das tabelas)

Tenho que pegar o novo roteiro para saber onde eles se encaixam na nova legislação...

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado (editado)

Elton, deu para Clarear bem agora, esse MD5 do executavel, após gerado ele nunca vai mudar?? se eu precisar reomologar sempre manterei o mesmo MD5... tem algum tópico ou tutorial que ensina a gerar o MD5 do Executavel??  

 

os demais o próprio AAC criptografa??

Editado por netsolutions
  • 3 anos depois...
Postado

Olá pessoal, sou programador em uma empresa e chegou até mim uma OS para melhorar o desempenho da rotina que gera MD5. Porém, esse sistema foi desenvolvido em Delphi 7 e conversando com alguns programadores me informaram que não existe suporte ACBR para Delphi 7. Gostaria de saber se realmente não existe suporte pra essa versão do Delphi 7, pois se existir vou utilizar os recursos dos componentes ACBR.

 

Obrigado.

  • Moderadores
Postado
43 minutos atrás, Jhonni Silva disse:

Olá pessoal, sou programador em uma empresa e chegou até mim uma OS para melhorar o desempenho da rotina que gera MD5. Porém, esse sistema foi desenvolvido em Delphi 7 e conversando com alguns programadores me informaram que não existe suporte ACBR para Delphi 7. Gostaria de saber se realmente não existe suporte pra essa versão do Delphi 7, pois se existir vou utilizar os recursos dos componentes ACBR.

 

Obrigado.

O suporte se encerra no mês de janeiro até lá o que fizermos de novo ou correções vai funcionar com delphi 7 depois não será garantido nada inferior a delphi 2009 que é unicode !

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado
14 horas atrás, Juliomar Marchetti disse:

O suporte se encerra no mês de janeiro até lá o que fizermos de novo ou correções vai funcionar com delphi 7 depois não será garantido nada inferior a delphi 2009 que é unicode !

Ok, vou repassar para o pessoal da empresa e ver o que decidem também.

Obrigado Juliomar.

  • Consultores
Postado
1 hora atrás, Jhonni Silva disse:

Ok, vou repassar para o pessoal da empresa e ver o que decidem também.

Leia os anúncios sobre o assunto, por favor:

 

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • 3 semanas depois ...
  • Membros Pro
Postado

Bom Dia,  

Uma dúvida referente a chave MD5 REQUISITO XXXI,  no item

 

"a) aplicar a função unidirecional MD5 uma única vez na porção do arquivo que compreende entre o seu primeiro byte e os bytes de quebra de linha imediatamente anteriores ao registro EAD, ficando excluído do cálculo do hash o registro EAD. O resultado será um código de 128 bits ou 16 bytes que devem ser inseridos no bloco de dados de 128 bytes que será assinado de acordo com a tabela abaixo, onde:......"

A chave MD5,  pelo que entendi pode variar até conforme o numero de ecf's do cliente,  e esta chave passa a ser individual para cada um e terá de ser registrado lá no SAT para cada um? seria isso?

Antes era uma chave MD5 apenas para todos os clientes,  pois correspondia a chave do software.

 

 

  • Este tópico foi criado há 2930 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.