1

如何使用 dot net 3.5 api 为数据实现计算 crc32。我在 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);        
    } 
4

2 回答 2

1

.NET FCL 没有提供像 java.util.zip.CRC32 这样的类,所以你必须自己动手。这并不难,那里有一些不错的例子:

示例 1 示例 2

于 2009-11-18T13:36:25.987 回答
1

.NET 库中没有标准的 CRC32 算法。您可以使用像这样的其他实现。此外,如果对使用 Crc32 没有特定要求(例如,您只需要计算校验和以检查完整性),我建议使用Crc32C。该算法可以在现代 CPU 上执行,因此它通常比本地实现快 10 倍,或者比任何托管实现快 20-60 倍。

于 2016-11-01T12:10:27.613 回答