AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

cksumposix - En ligne dans le Cloud

Exécutez cksumposix dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande cksumposix qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


cksum — écrit les sommes de contrôle et les tailles des fichiers

SYNOPSIS


somme de contrôle [filet ]

DESCRIPTION


La somme de contrôle le service public doit calculer et écrire sur la sortie standard un contrôle de redondance cyclique
(CRC) pour chaque fichier d'entrée, et également écrire sur la sortie standard le nombre d'octets dans chaque
déposer. Le CRC utilisé est basé sur le polynôme utilisé pour la vérification des erreurs CRC dans le
Norme ISO/IEC 8802-3:1996 (Ethernet).

L'encodage de la somme de contrôle CRC est défini par le polynôme générateur :

G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

Mathématiquement, la valeur CRC correspondant à un fichier donné doit être définie par le
procédure suivante :

1. le n les bits à évaluer sont considérés comme les coefficients d'un polynôme mod 2
M(x) de diplôme n-1. Ces n bits sont les bits du fichier, avec le plus
bit significatif étant le bit le plus significatif du premier octet du fichier et le
dernier bit étant le bit de poids faible du dernier octet, complété par des bits zéro (si
nécessaire) pour obtenir un nombre entier d'octets, suivi d'un ou plusieurs octets
représentant la longueur du fichier sous forme de valeur binaire, l'octet le moins significatif en premier.
Le plus petit nombre d'octets capables de représenter cet entier doit être utilisé.

2. M(x) est multiplié par x32 (c'est-à-dire décalé de 32 bits vers la gauche) et divisé par G(x) en utilisant
division mod 2, produisant un reste R(x) de degré ≤ 31.

3. Les coefficients de R(x) sont considérés comme une séquence de 32 bits.

4. La séquence de bits est complétée et le résultat est le CRC.

OPTIONS


Aucun.

OPÉRANDES


L'opérande suivant doit être pris en charge :

filet Un chemin d'accès d'un fichier à vérifier. Sinon filet les opérandes sont spécifiés, le
l'entrée standard doit être utilisée.

STDIN


L'entrée standard doit être utilisée si aucun filet les opérandes sont spécifiés et doivent être utilisés si un
filet l'opérande est '−' et la mise en œuvre traite les '−' comme signifiant entrée standard.
Sinon, l'entrée standard ne doit pas être utilisée. Voir la section FICHIERS D'ENTRÉE.

CONTRIBUTION DES DOSSIERS


Les fichiers d'entrée peuvent être de n'importe quel type de fichier.

ENVIRONNEMENT VARIABLES


Les variables d'environnement suivantes doivent affecter l'exécution de somme de contrôle:

LANGUE Fournissez une valeur par défaut pour les variables d'internationalisation qui ne sont pas définies ou
nul. (Voir le volume Définitions de base de POSIX.1‐2008, Section 8.2,
Internationalisation Variables pour la priorité de l'internationalisation
variables utilisées pour déterminer les valeurs des catégories de paramètres régionaux.)

LC_TOUS S'il est défini sur une valeur de chaîne non vide, remplace les valeurs de tous les autres
variables d'internationalisation.

LC_CTYPE Déterminer la localisation pour l'interprétation des séquences d'octets de données de texte
sous forme de caractères (par exemple, des caractères à un octet par opposition aux caractères à plusieurs octets dans
arguments).

LC_MESSAGES
Déterminez les paramètres régionaux qui doivent être utilisés pour affecter le format et le contenu de
messages de diagnostic écrits dans l'erreur standard.

NLSPATH Déterminer l'emplacement des catalogues de messages pour le traitement des LC_MESSAGES.

ASYNCHRONE ÉVÉNEMENTS


Par défaut.

SORTIE STD


Pour chaque fichier traité avec succès, le somme de contrôle l'utilitaire doit écrire dans ce qui suit
Format:

"%u %d %s\n", <somme de contrôle>,# of octets>,chemin d'accès>

Sinon filet l'opérande a été spécifié, le chemin d'accès et son premier doit être omis.

STDERR


L'erreur standard ne doit être utilisée que pour les messages de diagnostic.

SORTIE DES DOSSIERS


Aucun.

ÉLARGI DESCRIPTION


Aucun.

EXIT STATUT


Les valeurs de sortie suivantes doivent être renvoyées :

0 Tous les fichiers ont été traités avec succès.

>0 Une erreur s'est produite.

CONSÉQUENCES OF LES ERREURS


Par défaut.

La Abonnement les sections informatif.

INSCRIPTION UTILISATION


La somme de contrôle utilitaire est généralement utilisé pour comparer rapidement un fichier suspect avec un fichier de confiance
version de celui-ci, de manière à garantir que les fichiers transmis sur des supports bruyants arrivent
intact. Cependant, cette comparaison ne peut pas être considérée comme sécurisée cryptographiquement. Les
les chances qu'un fichier endommagé produise le même CRC que l'original sont faibles ; délibérer
la tromperie est difficile, mais probablement pas impossible.

Bien que les fichiers d'entrée dans somme de contrôle peut être de n'importe quel type, les résultats n'ont pas besoin d'être ce qui serait
attendu sur les fichiers de périphérique spéciaux de caractère ou sur les types de fichiers non décrits par le système
Volume des interfaces de POSIX.1‐2008. Étant donné que ce volume de POSIX.1‐2008 ne précise pas le
taille de bloc utilisée lors de la saisie, les sommes de contrôle des fichiers spéciaux de caractères n'ont pas besoin d'être traitées
toutes les données de ces fichiers.

L'algorithme est exprimé en termes de flux binaire divisé en octets. Si un fichier est
transmis entre deux systèmes et subit toute transformation de données (telle que la modification
ordre des octets petit-boutiste à gros-boutiste), on ne peut pas s'attendre à des valeurs CRC identiques.
Les implémentations réalisant de telles transformations peuvent s'étendre somme de contrôle pour gérer un tel
situations.

EXEMPLES


Aucun.

RAISONNEMENT


Le programme en langage C suivant peut être utilisé comme modèle pour décrire l'algorithme. Ce
suppose qu'un carboniser est un octet. Il suppose également que l'intégralité du fichier est disponible pour
on passe par la fonction. Cela a été fait pour simplifier la démonstration de la
algorithme, plutôt que comme modèle de mise en œuvre.

statique non signé Long crctab[] = {
0x00000000,
0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476cc, 0x17c56b6b,
0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6,
0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac,
0x5bd4b01b, 0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f,
0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a,
0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58,
0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033,
0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe,
0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4,
0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0,
0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5,
0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07,
0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c,
0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1,
0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b,
0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698,
0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d,
0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, 0xc6bcf05f,
0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34,
0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80,
0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a,
0x58c1663d, 0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629,
0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c,
0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e,
0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65,
0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8,
0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2,
0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71,
0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30mauvais, 0x81b02d74,
0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21,
0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a,
0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087,
0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d,
0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce,
0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb,
0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09,
0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662,
0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf,
0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
};

memcrc long non signé (const unsigned char *b, size_t n)
{
/* Arguments d'entrée :
* const unsigned char* b == séquence d'octets jusqu'à la somme de contrôle
* size_t n == longueur de la séquence
*/

enregistrer size_t i;
inscrire c non signé, s = 0 ;

pour (i = n; i > 0; −−i) {
c = *b++ ;
s = (s << 8) ^ crctab[(s >> 24) ^ c];
}

/* Étendre avec la longueur de la chaîne. */
tandis que (n != 0) {
c = n & 0377 ;
n >>= 8 ;
s = (s << 8) ^ crctab[(s >> 24) ^ c];
}

retour ~s;
}

La pratique historique d'écrire le nombre de « blocs » a été changée en écriture
le nombre d'octets, puisque ce dernier est non seulement plus utile, mais aussi parce que l'historique
les implémentations n'ont pas été cohérentes dans la définition de ce que signifiait un « bloc ».

L'algorithme utilisé a été choisi pour augmenter la robustesse opérationnelle de somme de contrôle. Ni
le System V ni BSD somme algorithme a été sélectionné. Étant donné que chacun d'eux était différent et
chacun était le comportement par défaut sur ces systèmes, aucun compromis réaliste n'était disponible si
l'un ou l'autre ont été sélectionnés - un ensemble d'applications historiques s'effondrerait. Par conséquent, le nom
a été changé en somme de contrôle. Bien que l'historique somme les commandes continueront probablement d'être
fourni pendant de nombreuses années, les programmes conçus pour la portabilité entre les systèmes devraient utiliser le
nouveau nom.

L'algorithme sélectionné est basé sur celui utilisé par la norme ISO/IEC 8802-3:1996
(Ethernet) pour le champ de séquence de contrôle de trame. L'algorithme utilisé ne correspond pas au
définition technique d'un somme de contrôle; le terme est utilisé pour des raisons historiques. La longueur de
le fichier est inclus dans le calcul du CRC car cela correspond à l'inclusion d'une longueur
par Ethernet dans son CRC, mais aussi parce qu'il protège des collisions intempestives
entre les fichiers qui commencent par différentes séries de zéro octets. La chance que deux
des fichiers différents produisent des CRC identiques est beaucoup plus important lorsque leurs longueurs ne sont pas
pris en considération. Garder la longueur et la somme de contrôle du fichier lui-même séparés donnerait un
algorithme légèrement plus robuste, mais l'utilisation historique a toujours été qu'un seul nombre
(la somme de contrôle telle qu'imprimée) représente la signature du fichier. Il a été décidé que
l'usage historique était la considération la plus importante.

Les premières propositions contenaient des modifications à l'algorithme Ethernet qui impliquaient l'extraction
valeurs de la table chaque fois qu'un résultat intermédiaire est devenu zéro. Cela a été démontré comme étant moins
robuste que la méthode actuelle et mathématiquement difficile à décrire ou à justifier.

Le calcul utilisé est identique à celui donné en pseudo-code dans le Sarwate référencé
article. Le rendu du pseudo-code est :

X <− 0; Y <− 0;
en i <− m -1 étape -1 jusqu'à 0 do
commencer
T <− X(1) ^ A[i] ;
X(1) <− X(0); X(0) <− Y(1); Y(1) <− Y(0); Y(0) <− 0;
commentaire: f[T] ainsi que f'[T] dénoter le T-ème des mots in le
table f ainsi que f' ;
X <− X ^ f[T] ; Y <− Y ^ f'[T];
fin

Le pseudo-code est reproduit exactement comme indiqué ; cependant, notez que dans le cas de somme de contrôle,
Un[je] représente un octet du fichier, les mots X ainsi que Y sont traités comme un seul 32 bits
valeur et les tableaux f ainsi que f' sont une seule table contenant des valeurs de 32 bits.

L'article Sarwate référencé traite également de la génération de la table.

FUTUR DIRECTIONS


Aucun.

Utilisez cksumposix en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

  • 1
    wxPython
    wxPython
    Un ensemble de modules d'extension Python qui
    encapsulez les classes d'interface graphique multiplateforme à partir de
    wxWidgets.. Public : Développeurs. Utilisateur
    interface : Système X Window (X11), Win32...
    Télécharger wxPython
  • 2
    gestionnaire de fichiers de paquets
    gestionnaire de fichiers de paquets
    Ceci est le gestionnaire de fichiers du pack Total War
    projet, à partir de la version 1.7. UNE
    courte introduction à Warscape
    modding : ...
    Télécharger le packfilemanager
  • 3
    IPerf2
    IPerf2
    Un outil de trafic réseau pour mesurer
    Performances TCP et UDP avec métriques
    autour du débit et de la latence. Les
    les objectifs comprennent le maintien d'une activité
    morue iperf...
    Télécharger IPerf2
  • 4
    fre:ac - convertisseur audio gratuit
    fre:ac - convertisseur audio gratuit
    fre:ac est un convertisseur audio gratuit et un CD
    ripper pour différents formats et encodeurs.
    Il dispose de MP3, MP4/M4A, WMA, Ogg
    Formats Vorbis, FLAC, AAC et Bonk
    Support, ...
    Télécharger fre:ac - convertisseur audio gratuit
  • 5
    matplotlib
    matplotlib
    Matplotlib est une bibliothèque complète
    pour créer des images statiques, animées et
    visualisations interactives en Python.
    Matplotlib rend les choses simples faciles et
    chose difficile...
    Télécharger Matplotlib
  • 6
    Botman
    Botman
    Écrivez votre logique de chatbot une fois et
    connectez-le à l'un des
    services de messagerie, y compris Amazon
    Alexa, Facebook Messenger, Slack,
    Télégramme ou même yo...
    Télécharger Botman
  • Plus "

Commandes Linux

Ad