2009-11-18 73 views
0

如何使用dot net 3.5 api实现计算crc32数据。我在java中使用了以下代码。.net 3.5:如何使用dot net 3.5 api实现计算crc32数据?

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

回答

1

.NET FCL不提供像java.util.zip.CRC32这样的类,因此您必须自行推出。这不是艰难的,有一些不错的例子在那里:

Example 1 Example 2

0

有一个在.NET库没有标准的CRC32算法。您可以使用其他实现,如this。另外,如果没有使用Crc32的具体要求(例如,您只需计算校验和来检查完整性),我推荐使用Crc32C。该算法可以在现代CPU上执行,因此通常比本机实现速度快10倍,或比任何管理实现快20至60倍。