Criando Hash Com Postgres

postgresql_logo-555px

 

Para quem trabalha com o banco de dados postgresql, e está desenvolvendo o PAF-ECF, no 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.

Para realizar essa operação no postgresql vou criar o Hash de cada registro completo, para realizar essa operação devemos:

Primeiro entre no pgadmin, depois clique em SQL, agora vamos começar o desenvolvimento do hash.

Vamos utilizar a função pgcrypto, para habilitar ela você deve utilizar o comando a seguir:

CREATE EXTENSION IF NOT EXISTS pgcrypto;

Agora que ativamos o pgcrypto podemos gerar o hash de cada coluna, para gerar o hash do registro completo é bem simples segue o código a seguir:

select p from produto as p

Onde p é o alias do produto, eu utilizo o alias porque se existe algum campo onde tenha o mesmo nome da tabela ele não gera o registro de todas as colunas, ele irá exibir somente a coluna.

O código acima você irá observar que ele exibirá todas as colunas existentes da tabela em uma unica coluna. Agora para gerar o hash da coluna completa você irá inserir o código a seguir:

select digest(cast(p as text),’sha256′) from produto as p

Lembrando que o campo que você irá armazenar o hash deve ser do tipo bytea, a função digest ela converte somente campo texto por isso utilizamos o cast para converter o p(linha completa da tabela produto) para texto.

Pronto agora você tem o hash da sua linha por tabela.

Dúvidas entre em contato comigo.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s