.net 3.5: как реализовать вычисление crc32 для данных, используя dot net 3.5 api - PullRequest
0 голосов
/ 18 ноября 2009

как реализовать вычисление crc32 для данных с использованием dot net 3.5 api. Я сделал то же самое в Java с помощью следующего кода.

   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);        
    } 

Ответы [ 2 ]

1 голос
/ 18 ноября 2009

.NET FCL не предоставляет такой класс, как java.util.zip.CRC32, так что вам придется свернуть свой собственный. Это не сложно, есть несколько достойных примеров:

Пример 1 Пример 2

0 голосов
/ 01 ноября 2016

В библиотеке .NET нет стандартного алгоритма CRC32. Вы можете использовать другие реализации, такие как this . Кроме того, если нет особых требований для использования Crc32 (например, вам просто нужно вычислить контрольную сумму для проверки целостности), я рекомендую использовать Crc32C . Этот алгоритм может выполняться на современных процессорах, в результате он обычно в 10 раз быстрее, чем собственная реализация, или в 20–60 раз быстрее, чем любая управляемая реализация.

...