.NET 3.5: Como implementar Calcule o CRC32 para obter dados usando API do DOT Net 3.5?

StackOverflow https://stackoverflow.com/questions/1755949

  •  20-09-2019
  •  | 
  •  

Pergunta

Como implementar Calcule Crc32 para dados usando o DOT Net 3.5 API.Eu fiz o mesmo em Java com o seguinte código.

   public static String getMAC (byte [] value) {  
    java.util.zip.CRC32 crc32 = new java.util.zip.CRC32 ();
    crc32.update(value);
    long newCRC = crc32.getValue();
    String crcString = Long.toHexString(newCRC);
    try {
        crcString = ISOUtil.padleft(Long.toHexString(newCRC), 8, '0');
    }
    catch (Exception e){
        e.printStackTrace();
    }

    if (ISOConstantsLibrary.DEBUG) System.out.println("for hex string: " + ISOUtil.hexString(value) + "\nmac" + crcString);        
    } 
Foi útil?

Solução

O .NET FCL não fornece uma classe como java.util.zip.crc32, então você precisa rolar o seu próprio. Não é difícil, existem alguns exemplos decentes por aí:

Exemplo 1 Exemplo 2

Outras dicas

Não há algoritmo CRC32 padrão na biblioteca .NET. Você pode usar outras implementações como isto. Além disso, se não houver requisitos específicos para usar o CRC32 (por exemplo, você só precisa calcular a soma de verificação para verificar a integridade), recomendo usar CRC32C. Esse algoritmo pode ser realizado nas CPUs modernas, como resultado, geralmente 10x vezes mais rápido que a implementação nativa ou 20x-60x vezes mais rápido do que qualquer implementação gerenciada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top