Isso mesmo,

Postei uma correção na função que decodifica, me enganei e coloquei 'D1' ao
invés de 'DI', um erro bem bobo na verdade.

Para ter certeza de que as coisas estão funcionando direitinho eu fiz um
programinha em Delphi utilizando a mesma rotina de criptografia utilizada
pelos correios (http://www.cityinthesky.co.uk/opensource/dcpcrypt), esse
programinha decodifica pelo campo CEP codificado com twofish + base64 +
hash e gera um novo arquivo de texto com o código e o campo CEP
decodificado, fiz a comparação dessa rotina com a minha rotina em PHP (
http://pastebin.com/SGPhCSG1) e está tudo OK, quanto as outras rotinas
postadas eu não posso garantir nada pois não testei...

Um abraço a todos, logo posto a nova base.

Andrey



Em 24 de abril de 2012 19:45, Mauro Matos <[email protected]>escreveu:

> Olá Todos,
>
> Parece haver apanas um problema com a descodificação do campo
> log_key_dne de alguns registros, que estão decodificados no campo cep
> na mesma tabela (log_logradouro).
>
> Encontrei em
> http://blog.otavio.info/2008/06/banco-de-dados-dos-correios.html,
> uma função para PostgreSQL, postada por Allyson, que parece resolver o
> problema. Aí e só atualizar o campo cep com uma instrução update.
>
> cep=# select count(*) from log_logradouro;
>  count
> --------
>  855861
> (1 row)
>
> cep=# select count(*) from log_logradouro where cep <>
> fncdecryptcep(log_key_dne);
>  count
> --------
>  114323
> (1 row)
>
> cep=# UPDATE log_logradouro SET cep = fncdecryptcep(log_key_dne) WHERE
> cep <> fncdecryptcep(log_key_dne);
> UPDATE 114323
>
> Consultando:
>
> cep=# SELECT log_logradouro.log_nome as "Logradouro",
> log_bairro.bai_no as "Bairro", log_localidade.loc_no as "Localidade",
> log_logradouro.ufe_sg as "UF", log_logradouro.cep as "CEP" FROM
> log_logradouro, log_bairro, log_localidade WHERE
> log_logradouro.bai_nu_sequencial_ini = log_bairro.bai_nu_sequencial
> AND log_logradouro.loc_nu_sequencial =
> log_localidade.loc_nu_sequencial AND log_logradouro.cep = '89280412';
>       Logradouro      | Bairro |    Localidade    | UF |   CEP
> ----------------------+--------+------------------+----+----------
>  Rua Gerhardt Ziesche | Centro | São Bento do Sul | SC | 89280412
> (1 row)
>
> Lembrando que o campo cep, também está presente em outras tabelas.
>
> A função:
>
> Create or Replace Function fncdecryptcep(argkeydne varchar) Returns
> varchar AS $fncdecryptcep$
> Declare
>  decryptedcep varchar := '';
> Begin
>  For i In 1..length($1) By 2 Loop
>  Case substr($1,i,2)
>  When 'X8','CN','8X','NC' Then
>    decryptedcep := decryptedcep || 1;
>  When 'Z0','EP','0Z','PE' Then
>    decryptedcep := decryptedcep || 2;
>  When '1B','GR','B1','RG' Then
>    decryptedcep := decryptedcep || 3;
>  When '3D','ID','D3','DI' Then
>    decryptedcep := decryptedcep || 4;
>  When '4C','JS','C4','SJ' Then
>    decryptedcep := decryptedcep || 5;
>  When '2A','HQ','A2','QH' Then
>    decryptedcep := decryptedcep || 6;
>  When '09','FO','90','OF' Then
>    decryptedcep := decryptedcep || 7;
>  When 'Y7','DM','7Y','MD' Then
>    decryptedcep := decryptedcep || 8;
>  When '5V','BK','V5','KB' Then
>    decryptedcep := decryptedcep || 9;
>  When 'UG','AL','GU','LA' Then
>    decryptedcep := decryptedcep || 0;
>  Else
>    Return Null;
>  End Case;
> End Loop;
> Return decryptedcep;
> End;
> $fncdecryptcep$ Language plpgsql;
>
> Comment On Function fncdecryptcep(argkeydne varchar) Is 'Função para
> Descriptografar os CEPs do Banco de Dados do DNE';
>
> Abraços
>
>
> Em 24 de abril de 2012 11:16, Ademir Cristiano Gabardo
> <[email protected]> escreveu:
> > SELECT * FROM log_logradouro WHERE CEP = 89280412;
> >
> > Este é o cep do meu prédio... não está no DB.
> > Por nome de rua tbm não "Gerhardt Ziesche"
> >
> > (Na busca dos correios)...
> > Busca CEP
> > Faça suas consultas individuais de CEP, destinadas a endereçamentos de
> > objetos de correspondências a serem postadas nos Correios.
> > 1 Logradouro(s)
> >  Logradouro      Bairro          Localidade      UF      CEP
> > Rua Gerhardt Ziesche    Centro  São Bento do Sul        SC      89280-412
> >
> >
>
> _______________________________________________
> [email protected]
> http://www.codeigniter.com.br
> http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
> ---------------------------
> Oportunidade de negócio
> http://www.franquiasargohost.net
> ---------------------------
>
_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

Responder a