8
votes

Fonction CKSUM compatible Java

Y a-t-il une bibliothèque / code dans Java pour calculer le CRC 32 bits d'un flux d'octets d'une manière qui correspond à la commande CKSUM à UNIX?


0 commentaires

3 Réponses :


2
votes

Avez-vous essayé la classe CRC32?

http://download.oracle. COM / Javase / 7 / Docs / API / Java / UTIL / ZIP / CRC32.HTML

Ceci est le CRC 32 que GZIP utilise.


3 commentaires

J'ai lu en ligne à plusieurs endroits que l'algorithme CRC-32 de l'UNIX CICSUM n'est pas la même chose que GZIP. Je n'ai pas testé cela, mais cela risque d'être vrai. Utiliser 'Jacksum' (voir ci-dessus) fonctionne bien pour moi.


@Kowshik, je peux vérifier que Java's CRC32 n'est pas la même chose que / usr / bin / cksum


@Kowshik, vérifiez ma réponse, s'il vous plaît.



6
votes

Jacksum: http://www.jonelo.de/java/jacksum/index .html xxx

C'est une source ouverte avec une licence GPL.


4 commentaires

Fonctionne parfaitement pour moi. Merci pour la réponse rapide!


@Palacsint: Y a-t-il un code / algo que je peux utiliser dans mon programme Java, car je ne veux pas d'utilité tierce


FAIT FUN, JONELO.JACKSUM.ALGORITHM.CKSUM a la même interface que la classe CRC32 de Java, mais donne le même résultat que UNIX CKSUM.


Je consulterais un avocat d'entreprise avant d'utiliser cette bibliothèque dans le code des entreprises. La licence est GPL ("copyleft"), ce qui signifie que vous devez fournir le code source de votre code de projet au public. Si c'était la LGPL («licence publique générale moins générale»), vous ne seriez pas obligé de fournir un accès à votre code propriétaire.



1
votes

La commande cksum sur MacOS permet de sélectionner des algorithmes historiques et un algorithme 3 est le même que java.util.zip.crc32 , comme @ Roberttupelo-Schneck a souligné. Pour une raison quelconque, le plus compact checkedInputStretream donne une checksum différent.

par exemple xxx

identique à: xxx


0 commentaires