.net 3.5:如何使用dot net 3.5 api实现数据计算crc32?

时间:2009-11-18 13:25:28

标签: java .net crc32

如何使用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);        
    } 

2 个答案:

答案 0 :(得分:1)

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

Example 1 Example 2

答案 1 :(得分:0)

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