Gerando Hash SHA-1 a partir de uma String
27/05/2013 Deixe um comentário
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 =)