2009-11-18 8 views
0

comment implémenter calculer crc32 pour les données en utilisant dot net 3.5 api.J'ai fait la même chose en Java avec le code suivant..net 3.5: comment implémenter calculer crc32 pour les données en utilisant dot net 3.5 api?

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

Répondre

1

Le .NET FCL ne fournit pas une classe comme java.util.zip.CRC32 donc vous devez rouler votre propre. Ce n'est pas difficile, il y a quelques exemples convenables là-bas:

Example 1 Example 2

0

Il n'y a pas d'algorithme standard CRC32 dans la bibliothèque .NET. Vous pouvez utiliser d'autres implémentations telles que this. En outre, s'il n'y a pas d'exigences spécifiques pour utiliser Crc32 (par exemple, vous avez juste besoin de calculer la somme de contrôle pour vérifier l'intégrité), je recommande d'utiliser Crc32C. Cet algorithme peut être exécuté sur des processeurs modernes, car il est généralement 10 fois plus rapide qu'une implémentation native ou 20 x 60 fois plus rapide qu'une implémentation gérée.