Crc32, questo sconosciuto

martedì 21 luglio 2009 - 17.36

ale_fi Profilo | Newbie

Salve ragazzi, perdonate l'intrusione. Leggo spesso questo forum e lo trovo davvero interessante, pieno zeppo di gente davvero capace.
Ho un problema, devo convertire un sorgente Java in c#.
Più nello specifico ho un problema fin da subito : nelle specifiche c'è scritto, testuali parole :
"Viene calcolato il CRC32 del primo parametro (codice cliente di tipo string 8 caratteri)"
in Java, mi dice chi se ne intende, c'è la libreria apposita che calcola questo benedetto standard crc32, ma esiste qualcosa anche in c#?
Io non so nemmeno cosa sia questo crc32 (ho trovato qualcosa su wikipedia http://it.wikipedia.org/wiki/Cyclic_redundancy_check ma per è davvero arabo...
C'è per caso qualcuno che mi può essere utile? Sarebbe davvero importante per me.
Grazie di cuore,
Alessio.

luxsor Profilo | Guru

Ciao Alessio,
qui c'è un esempio in C#
http://www.geekpedia.com/code113_Checksum-CRC32-Calculator.html


------------------------
Luxsor

ale_fi Profilo | Newbie

E' già un inizio, ma voglio essere ancora più preciso. Secondo voi posso utilizzare (e come) l'esempio segnalato per convertire il codice Java seguente?

String[] parts = new String[3];

parts[0] = serial_A.getText().trim(); // cliente
parts[1] = serial_B.getText().trim(); // utente
parts[2] = serial_C.getText().trim(); // dominio

// parts[0] è il cliente: metto al suo posto un CRC lungo 5
CRC32 crc0 = new CRC32();
crc0.update(parts[0].getBytes());
parts[0] = String.valueOf(crc0.getValue()).substring(0, 5);

// parts[1] è l'utente: metto al suo posto un CRC lungo 8
CRC32 crc1 = new CRC32();
crc1.update(parts[1].getBytes());
parts[1] = String.valueOf(crc1.getValue()).substring(0, 8);

byte[] bytes = new String(parts[0] + parts[1] + parts[2]).getBytes();
CRC32 crcControl = new CRC32();
crcControl.update(bytes);
String crcCalc = String.valueOf(crcControl.getValue()).substring(0, 6);

StringBuffer strBuff = new StringBuffer();
strBuff.append(crcCalc.substring(0, 2));
strBuff.append(parts[0]);
strBuff.append("-");
strBuff.append(crcCalc.substring(2, 4));
strBuff.append(parts[1]);
strBuff.append("-");
strBuff.append(crcCalc.substring(4, 6));
strBuff.append(parts[2]);

// questo è il seriale generato
return strBuff.toString();
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5