Gerando Hash SHA-1 a partir de uma String

Olá,

Algumas customizações referentes a Nota Fiscal Eletrônica de Serviços requerem que seja criada um hash SHA-1 em uma tag Assinatura.

Da primeira vez que tive que passar por esta situação foi bem complicado e levei muitas horas para fazer um algoritmo muito complexo… mas recentemente tive a oportunidade de colaborar neste assunto novamente e conseguimos chegar a um algoritmo muito mais simples.

Segue abaixo job que exemplifica o mesmo:

 

static void SHA_1()
{
System.Security.Cryptography.SHA1CryptoServiceProvider hash;
System.Text.ASCIIEncoding encoder;
System.Byte[] combined;
System.Byte byte;
str Sha1, input;
int i, arrayLength;
container cont;

;
new InteropPermission(InteropKind::ClrInterop).assert();

input = “00000317330NF 00000003866320090905T NN000000000001686000000000000000082997990008764130000102”;

hash = new System.Security.Cryptography.SHA1CryptoServiceProvider();
encoder = new System.Text.ASCIIEncoding();
combined = encoder.GetBytes(input);

hash.ComputeHash(combined);

sha1 = System.BitConverter::ToString(hash.get_Hash());

info(stralpha(sha1));
}

 

Espero que ajude e poupe um bom esforço e tempo…!!!

Créditos de colaboração ao sr. Hilquias Ferreira, futuro escritor deste blog =)