Boa tarde, Pessoal.
Alguém conhece função para gerar hash padrão CRC-16 em AdvPL?
https://pt.wikipedia.org/wiki/CRC
Obrigado.
Se alguma pergunta ou resposta lhe foi útil, não deixe de dar seu voto positivo!
Boa tarde, Pessoal.
Alguém conhece função para gerar hash padrão CRC-16 em AdvPL?
https://pt.wikipedia.org/wiki/CRC
Obrigado.
Creio que ainda não tem comando no padrão para geração de CRC16.
Uma saída é usar um software externo de geração de crc, tem alguns free e outros pagos.
Um exemplo free é o http://rehash.sourceforge.net/rehash.html
Você vai precisar baixar e instalar no servidor que roda o appserver, aí no advpl você chama grava o string que deseja gerar o CRC em um arquivo texto seguindo o esquema desse artigo:
http://www.academiaerp.com.br/criacao-de-arquivos-texto-com-advpl/
Uma vez criado o arquivo com o string, rode o rehash com o seguinte comando:
WaitRunSrv("rehash.exe c:\temp\arquivo.txt -none -crc16c>resultado.txt",.T., "c:\temp" )
Então o CRC vai estar no arquivo resultado.txt, então é só abrir o arquivo e pegar na 2a. linha:
CRC16.CCITT : 8806
Não esquecça de apagar os arquivos gerados para não lotar a pasta do servidor.
Referência: https://devforum.totvs.com.br/1529-execucao-de-aplicativos-no-servidor
Rodrigo,
Não achei nada nativo em ADVPL ou presente no Protheus que faça a geração de CRC-16.
As funções de criptografia e geração de hash estão da seguinte árvore do TDN:
https://tdn.totvs.com/display/tec/Criptografia
Nessa árvore, existem as funções MsCRC32
e MsCRC32Str
que parecem trabalhar com CRC, porém CRC-32.
Atualização:
Agora também existe a função CRCCalc
, que permite o cálculo de diferentes tipos de CRC: