Tecnologia > Ferramentas de Apoio > LSP - Linguagem Senior de Programação > Funções > Funções Gerais > GeraHash

GeraHash

Retorna um Hash do texto informado.

Esta função não é recomendada para arquivos que não sejam de texto. Entende-se por arquivo de texto, todo aquele que é possível editar pelo Bloco de Notas, disponível nos Sistemas Operacionais Windows. Documentos com extensões DOC, DOCX e PDF não são considerados arquivos de texto neste contexto.

Sintaxe: GeraHash(aTexto, aAlgoritmo, aRetorno);

Parâmetros:

Nome Tipo Descrição
aTexto Alfa Texto original
aAlgoritmo Alfa É o algoritmo de dispersão, gerador do Hash. Atualmente permite os modos MD5, SHA1, SHA256 e SHA512
aRetorno Alfa Hash gerado

Exemplo:

Geração de Hash a partir de um arquivo de texto.

Definir Numero arq;
Definir Numero qtdlido;
Definir Alfa dados;
Definir Alfa linhas;
Definir Alfa hashGerado;

linhas = "";
hashGerado = "";

qtdLido = 100;
arq = Abrir("c:\\arquivo.xml", Ler);

@ LENDO O ARQUIVO. @
Enquanto(qtdlido = 100){
  QtdLido = Ler(arq, dados, 100);
  linhas = linhas + dados;
}
Fechar(arq);

@ GERANDO O HASH DO ARQUIVO. @
GeraHash(linhas, "SHA1", hashGerado);

@ RETORNANDO UMA MENSAGEM COM O HASH GERADO. @
Mensagem(retorna, hashGerado);

@ A variável "hashGerado" retorna a "assinatura" do texto. @

Leitura de um arquivo XML e criação de um novo XML a partir do original contendo o Hash em uma tag.

Definir Numero qtdLido;
Definir Numero arqEntrada;
Definir Numero arqSaida;
Definir Numero qtdLido;
Definir Numero qtdGravado;
Definir Alfa vkEnter;
Definir Alfa dados;
Definir Alfa linhas;
Definir Alfa hashGerado;
Definir Alfa tags;
Definir Alfa tagProcurada;
Definir Alfa xmlFinal;
Definir Alfa nomeArqEntrada;
Definir Alfa nomeArqSaida;

@ INICIALIZANDO AS VARIÁVEIS. @
CaracterParaAlfa(13, vkEnter);
nomeArqEntrada = "C:\\arqEntrada.xml";
nomeArqSaida = "C:\\arqSaida.xml";
linhas = "";
hashGerado = "";
qtdlido = 100;
qtdGravado = 0;
tagProcurada = "</mensagem>"; @ TAG ONDE SERÁ INCLUIDO O HASH. @

@ LENDO O XML. @
arqEntrada = Abrir(nomeArqEntrada, Ler);
Enquanto(qtdlido = 100){
  qtdLido = Ler(arqEntrada, dados, 100);
  linhas = linhas + dados;
}
Fechar(arqEntrada);

@ GERANDO O HASH DO XML. @
GeraHash(linhas, "MD5", hashGerado);

@ DEFININDO AS TAGS QUE SERÃO ADICIONADAS AO XML. @
tags = "<hash>";
tags = tags + hashGerado; @ CONCATENA O HASH GERADO COMO VALOR DA TAG @
tags = tags + "</hash>"; @ FECHA A TAG. @
tags = tags + vkEnter + tagProcurada;

@ INSERINDO A TAG COM O HASH NO XML. @
TrocaString(linhas, tagProcurada, tags, xmlFinal); @ SUBSTITUI A TAGPROCURADA PELAS TAGS COM O HASH. @

@ SALVANDO O XML. @
arqSaida = Abrir(nomeArqSaida, Gravar);
TamanhoAlfa(xmlFinal, qtdGravado);
Gravar(arqSaida, xmlFinal, qtdGravado);
Fechar(arqEntradaSaida);

Utilização: Entre as aplicações de um Hash, destaca-se o uso na comparação de arquivos de texto, garantindo que a cópia enviada não sofreu alteração e na validação de senhas, que guarda o Hash da senha no banco de dados, aumentando a segurança.

Nota

Função disponível para os sistemas Gestão Empresarial PME | GO UP, Gestão Empresarial | ERP, Gestão de Pessoas | HCM e Ronda Senior.

Este artigo ajudou você?