DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Comparando o MD5 do registro - Tutorial de Geração do Bloco VII do PAF-ECF – Parte 03

Veja neste artigo PAF-ECF, Concluindo este pequeno tutorial, sobre a geração dos processos para atender o bloco VII do roteiro de homologações PAF-ECF, em sua versão 1.5 de abril de 2011.

Concluindo este pequeno tutorial, sobre a geração dos processos para atender o bloco VII do roteiro de homologações PAF-ECF, em sua versão 1.5 de abril de 2011, aplicável à versão 01.07, onde regulamenta os “Dados Técnicos para Geração da Assinatura Digital EAD”. Anexo VIII do Ato Cotepe 06/08, vou comentar sobre os processos de verificação e comparação do código MD5 gerado para o registro.

 

Na parte anterior do artigo, vimos a função que será responsável pela geração do código MD5 do registro. Para quem não sabe, o código MD5 é um algorítimo Hash de 128 bits, usado para garantir a integridade de dados de arquivos. Veja maiores informações no link abaixo:

 

http://pt.wikipedia.org/wiki/MD5

 

Sabendo disso, entende-se o porque da criação do MD5 do registro, pois uma vez criado, qualquer alteração realizada nos dados deste registro, acarretaria em divergência neste código.

 

Analisando dos testes 103 ao 113 que fazem parte do mencionado bloco VII, podemos que observar que os testes consistem principalmente em realizar os procedimentos que irão gravar os registros de dados nas determinadas tabelas do banco, e em seguida alterar manualmente estes dados gerados, através de uma ferramenta de acesso ao mesmo.

Logo após deverá ser gerado os arquivos textos a partir do menu fiscal, e os mesmos deverão apresentar o caractere “?”, nos campo “Modelo do ECF” e ou “Unidade” de acordo com o registro do Anexo em questão do Ato Cotepe 06/08.

 

Note que em apenas alguns campos chaves serão         realizados os testes, e no processo adotado, leva em consideração todos os campos da tabela, mas acredito que seria muito mais trabalhoso verificar apenas estes campos, do que usar este procedimento em questão.

 

Vamos lá. A outra rotina que devemos ter para verificar as alterações comparando o MD5, se dará no momento de gerar os arquivos textos do menu fiscal. Para isso, no momento de geração dos dados solicitados em cada anexo do ato cotepe 06/08 que se refere nos testes do roteiro, vamos programar a função criada no artigo anterior para ter o MD5 do registro no exato momento, e comparar o resultado com o MD5 gravado no referido registro. Caso não sejam idênticos, a informação dos campos “Modelo do ECF” e ou “Unidade”, deverão ser substituídos pelo caractere (?), conforme indicado nos testes.

 

Com isso concluímos este pequeno artigo. Espero que se útil aos companheiros desenvolvedores.

 

Até a próxima!

 





    10 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Williams Alves Dantas
a função MD5Print está gerando uma exceção de "integer overflow" para a seguinte string:
"Kg13,513,5ACEBOLADO05 F"

Este problema já foi relatado?
[há +1 mês] - Responder

 

Williams Alves Dantas
retificando, o erro ocorre na função MD5String(M: string): MD5Digest;

Estou utilizando o D7.
[há +1 mês] - Responder

 

Williams Alves Dantas
achei o problema.

projeto migrado do d5 para o d7. Foi possível comparar as configurações com um projeto d7 original.

[há +1 mês] - Responder

 

[autor] Luis Carlos Godinho
Ok!

Se precisar fique a vontade para postar os comentários.

Abs!
[há +1 mês] - Responder
 

Joao Paulo
poderia dar um exemplo de como chamar essa função no evento BeforePost do meu dataset, pois eu estou colocando como do exemplo abaixo e não esta gerando o MD5 Gerar_MD5_Registro_Tabela_Dados(meudataset);
[há +1 mês] - Responder

 

[autor] Luis Carlos Godinho
Olá!

Segue abaixo:

var MD5 : String;
Begin
MD5 := Gerar_MD5_Registro_Tabela_Dados(DataSet);
DataSet.FieldByName('').AsString := MD5;

Abs.!
[há +1 mês] - Responder
 

Joao Paulo
ok Luis, agora ta funcionando perfeito; no entanto se não for incomodo eu gostaria de saber se na hora de Gerar os arquivos do Bloco VII, como fazemos a validação desses dados criptografados para se houver modificação via Banco de dados o o paf-ecf interpretar esse modificação e Colocar o Carácter(?)

poderia dar um exemplo.
[há +1 mês] - Responder
 

[autor] Luis Carlos Godinho
Na realidade no bloco VII pede para gerar o arquivo do Menu fiscal "Movimento por ECF", e neste deverá conter a "?" nos registros cujo teve alteração.

Observe que neste mesmo artigo comento sobre isso no texto abaixo:

Vamos lá. A outra rotina que devemos ter para verificar as alterações comparando o MD5, se dará no momento de gerar os arquivos textos do menu fiscal. Para isso, no momento de geração dos dados solicitados em cada anexo do ato cotepe 06/08 que se refere nos testes do roteiro, vamos programar a função criada no artigo anterior para ter o MD5 do registro no exato momento, e comparar o resultado com o MD5 gravado no referido registro. Caso não sejam idênticos, a informação dos campos “Modelo do ECF” e ou “Unidade”, deverão ser substituídos pelo caractere (?), conforme indicado nos testes.

Abs.!
[há +1 mês] - Responder
 

Joao Paulo
Poderia dar um exemplo de como fazer essa comparação e colocar a (?) no campo alterado?
[há +1 mês] - Responder
 

[autor] Luis Carlos Godinho
Olha, a mesma rotina será usada para gerar o MD5 no before post e no momento de gerar o arquivo.

Você vai criar um campo na tabela para gravar o MD5 do registro no evento before post.

No momento de gerar o arquivo, você vai gerar novamente o MD5 do registro e comparar com o que ja esta gravado no banco.

Os 2 tem que ser iguais, se forem diferentes você ao invês de colocar a informação do campo inficado no roteiro, você iformará a "?"

Abs!
[há +1 mês] - Responder
 



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Luis Carlos Godinho

Programador formado em 1995, pela ETEIT – Escola técnica da UNIVALE. Atualmente trabalhando com a plataforma Delphi. Tem se dedicado nos últimos anos, ao desenvolvimento de aplicações PAF-ECF, SPED fiscal e NFe.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03