Qual è la differenza tra CRC32 e CRC32C? Conosco CRC32 da molto tempo, ma ho appena sentito CRC32C oggi. Sono fondamentalmente lo stesso metodo (cioè entrambi i risultati nello stesso hash per un dato dato)?CRC32 vs CRC32C?
risposta
Il CRC32 trovato in zip e molti altri luoghi utilizza il polinomio 0x04C11DB7; la sua forma inversa 0xEDB88320 è forse più conosciuta, essendo spesso trovata nelle implementazioni little-endian.
CRC32C utilizza un diverso polinomio (0x1EDC6F41, invertito 0x82F63B78) ma in caso contrario il calcolo è lo stesso. I risultati sono diversi, naturalmente. Questo è anche noto come Castagnoli CRC32 e trovato in modo più evidente nelle nuove CPU Intel che possono calcolare un passo CRC completo a 32 bit in 3 cicli. Questo è il motivo per cui il CRC32C sta diventando più popolare, poiché consente implementazioni avanzate che elaborano effettivamente una parola a ciclo a 32 bit nonostante la latenza a tre cicli (elaborando 3 flussi di dati in parallelo e utilizzando l'algebra lineare per combinare i risultati)).
- 1. Calcolo Ethernet CRC32 - software vs risultato algoritmico
- 2. È possibile che CRC32 (C) ritorni mai a 0?
- 3. Inversione CRC32
- 4. Digest :: CRC32 with Zlib
- 5. Implementazione Crc32 C - non funziona
- 6. L'implementazione di base di CRC32 di Wikipedia differisce dallo standard CRC32 visto online
- 7. Come generare SHA256 e CRC32 in ios
- 8. Come convertire l'hash crc32 di PHP nell'equivalente MySQL?
- 9. Come calcolare CRC32 con Python per abbinare i risultati online?
- 10. Come implementare CRC32 sfruttando le istruzioni specifiche di Intel?
- 11. Qual è la differenza tra crc32 e crc32b?
- 12. Come utilizzare correttamente l'assembly di moltiplicazione senza porta (PCLMULQDQ) in zlib CRC32?
- 13. algoritmo di checksum a 32 bit migliore qualità rispetto a CRC32?
- 14. ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?
- 15. VS 2008 vs VS 2008 Express
- 16. .NET vs ASP.NET vs CLR vs ASP
- 17. Atomikos vs JOTM vs Bitronix vs?
- 18. Accumulare vs piega vs ridurre vs comprimere
- 19. ACE vs Boost vs Poco vs wxWidgets
- 20. VS 2013 MSTest vs nUnit vs xUnit
- 21. control.BeginInvoke() Vs Dispatcher Vs SynchronizationContext Vs .. - AFFIDABILITÀ
- 22. Exec vs ExecWait vs ExecShell vs nsExec :: Exec vs nsExec :: ExecToLog vs nsExec :: ExecToStack vs ExecDos vs ExeCmd
- 23. bigtable vs cassandra vs simpledb vs dynamo vs couchdb vs hypertable vs riak vs hbase, cosa hanno in comune?
- 24. e vs * e | vs +
- 25. SpiderMonkey vs JavaScriptCore vs?
- 26. * vs ** vs *** in Proguard?
- 27. bundler vs RVM vs gemme vs RubyGems vs gemsets vs system ruby
- 28. Misurare il tempo in Linux - tempo vs orologio vs getrusage vs clock_gettime vs gettimeofday vs timespec_get?
- 29. innerText vs innerHtml vs label vs text vs textContent vs outerText
- 30. Mathematica: non valutata vs Defer vs attesa vs HoldForm vs HoldAllComplete vs etc etc
C'è un modo per convertire tra CRC32 e CRC32C? Guardando alcune [patch del kernel con commenti] (https://lwn.net/Articles/292984/), potrebbe essere possibile ma non è spiegato. – jww
@jww: Se è possibile, allora deve essere almeno complicato come unire i CRC per blocchi consecutivi insieme (come il calcolo di un 'preimage virtuale'). Non ho mai visto un algoritmo del genere, anche se la sua utilità sarebbe ovvia (come usare le istruzioni hardware per CRC32C e convertire il risultato nello standard (zip) CRC32). Il modo migliore per ottenere risposte rapidamente sarebbe quello di pubblicare questo come una domanda a sé stante. Il mio +1 è un dato. ;-) – DarthGizka