2009-11-18 53 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倍。