IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

csumposix - Online nel cloud

Esegui cksumposix nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando cksumposix che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


cksum — scrivi checksum e dimensioni dei file

SINOSSI


cksum [filetto...]

DESCRIZIONE


I cksum l'utility calcola e scrive sullo standard output un controllo di ridondanza ciclico
(CRC) per ogni file di input e scrivi anche sullo standard output il numero di ottetti in ciascuno
file. Il CRC utilizzato si basa sul polinomio utilizzato per il controllo degli errori CRC nel
Norma ISO/IEC 8802-3:1996 (Ethernet).

La codifica per il checksum CRC è definita dal polinomio generatore:

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

Matematicamente, il valore CRC corrispondente a un dato file deve essere definito dal
seguente procedura:

1. il n i bit da valutare sono considerati i coefficienti di un polinomio mod 2
M(x) di grado n−1. Queste n i bit sono i bit del file, con il massimo
bit significativo è il bit più significativo del primo ottetto del file e il
last bit è il bit meno significativo dell'ultimo ottetto, riempito con zero bit (se
necessario) per ottenere un numero intero di ottetti, seguito da uno o più ottetti
che rappresenta la lunghezza del file come valore binario, prima l'ottetto meno significativo.
Deve essere utilizzato il minor numero di ottetti in grado di rappresentare questo numero intero.

2. M(x) viene moltiplicato per x32 (cioè spostato a sinistra di 32 bit) e diviso per G(x) utilizzando
divisione mod 2, producendo un resto R(x) di grado ≤ 31.

3. I coefficienti di R(x) sono considerati una sequenza a 32 bit.

4. La sequenza di bit è completata e il risultato è il CRC.

VERSIONI


Nessuno.

OPERANDI


Il seguente operando deve essere supportato:

filetto Un percorso di un file da controllare. se no filetto gli operandi sono specificati, il
deve essere utilizzato l'input standard.

STDIN


Lo standard input deve essere utilizzato se no filetto gli operandi sono specificati e devono essere utilizzati se a
filetto l'operando è '-' e l'implementazione tratta il '-' come significato di input standard.
In caso contrario, lo standard input non deve essere utilizzato. Vedere la sezione FILE DI INGRESSO.

INGRESSO FILE


I file di input possono essere di qualsiasi tipo.

AMBIENTE VARIABILI


Le seguenti variabili d'ambiente influiranno sull'esecuzione di cksum:

LUNGO Fornire un valore predefinito per le variabili di internazionalizzazione non impostate o
nullo. (Vedi il volume Definizioni di base di POSIX.1-2008, Sezione 8.2,
Internazionalizzazione Variabili per il primato dell'internazionalizzazione
variabili utilizzate per determinare i valori delle categorie locali.)

LC_TUTTI Se impostato su un valore di stringa non vuoto, sovrascrive i valori di tutti gli altri
variabili di internazionalizzazione.

LC_CTYPE Determinare la localizzazione per l'interpretazione di sequenze di byte di dati di testo
come caratteri (ad esempio, caratteri a byte singolo anziché caratteri multibyte in
argomenti).

LC_MESSAGGI
Determinare la localizzazione che dovrebbe essere usata per influenzare il formato e il contenuto di
messaggi di diagnostica scritti nell'errore standard.

NLSPATH Determinare la posizione dei cataloghi dei messaggi per l'elaborazione di LC_MESSAGGI.

ASINCRONO EVENTI


Predefinito.

STDOUT


Per ogni file elaborato con successo, il cksum l'utilità deve scrivere quanto segue
formato:

"%u %d %s\n", <checksum>,# of ottetti>,pathname>

Se no filetto è stato specificato l'operando, il nome del percorso e la sua iniziale deve essere omesso.

Stderr


L'errore standard deve essere utilizzato solo per i messaggi di diagnostica.

USCITA FILE


Nessuno.

EXTENDED DESCRIZIONE


Nessuno.

EXIT STATUS


Devono essere restituiti i seguenti valori di uscita:

0 Tutti i file sono stati elaborati correttamente.

>0 Si è verificato un errore.

CONSEGUENZE OF ERRORI


Predefinito.

I i seguenti sezioni sono Informativo.

APPLICAZIONI USO


I cksum l'utilità viene in genere utilizzata per confrontare rapidamente un file sospetto con un file attendibile
versione della stessa, tale da garantire l'arrivo di file trasmessi su supporti rumorosi
intatto. Tuttavia, questo confronto non può essere considerato crittograficamente sicuro. Il
le possibilità che un file danneggiato produca lo stesso CRC dell'originale sono ridotte; deliberato
l'inganno è difficile, ma probabilmente non impossibile.

Sebbene i file di input per cksum può essere di qualsiasi tipo, non è necessario che i risultati siano quelli che sarebbero
previsto su file di dispositivi speciali a caratteri o su tipi di file non descritti dal sistema
Volume Interfacce di POSIX.1‐2008. Poiché questo volume di POSIX.1‐2008 non specifica il
dimensione del blocco utilizzata durante l'input, i checksum dei file speciali di caratteri non devono essere elaborati
tutti i dati in quei file.

L'algoritmo è espresso in termini di un flusso di bit suddiviso in ottetti. Se un file è
trasmessa tra due sistemi e subisce qualsiasi trasformazione dei dati (come la modifica
little-endian byte ordering to big-endian), non ci si possono aspettare valori CRC identici.
Le implementazioni che eseguono tali trasformazioni possono estendersi cksum per gestire tale
situazioni.

ESEMPI


Nessuno.

FONDAMENTO LOGICO


Il seguente programma in linguaggio C può essere utilizzato come modello per descrivere l'algoritmo. Esso
presuppone che a serbatoio è un ottetto. Presuppone inoltre che l'intero file sia disponibile per
un passaggio attraverso la funzione. Questo è stato fatto per semplicità nel dimostrare la
algoritmo, piuttosto che come modello di implementazione.

statico unsigned lungo cctab[] = {
0x00000000,
0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476 dc, 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, 0x6b93ddddb, 0x6f52c06c,
0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1,
0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816b,
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, 0x8cf30cattivo, 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, 0xee2ed18,
0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09,
0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662,
0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf,
0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
};

unsigned long memcrc(const unsigned char *b, size_t n)
{
/* Argomenti di input:
* const unsigned char* b == sequenza di byte per il checksum
* size_t n == lunghezza della sequenza
*/

registra size_t i;
registro senza segno c, s = 0;

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

/* Estende con la lunghezza della stringa. */
mentre (n != 0) {
c = n & 0377;
n >>= 8;
s = (s << 8) ^ crctab[(s >> 24) ^ c];
}

restituisce ~s;
}

La pratica storica di scrivere il numero di ``blocchi'' è stata cambiata in scrittura
il numero di ottetti, poiché quest'ultimo non è solo più utile, ma anche storico
le implementazioni non sono state coerenti nel definire cosa significasse un ``blocco''.

L'algoritmo utilizzato è stato selezionato per aumentare la robustezza operativa di cksum. Né
il System V né BSD somma è stato selezionato l'algoritmo Poiché ognuno di questi era diverso e
ognuno era il comportamento predefinito su quei sistemi, nessun compromesso realistico era disponibile se
entrambi sono stati selezionati: alcune serie di applicazioni storiche si sarebbero interrotte. Pertanto, il nome
è stato cambiato in cksum. Sebbene lo storico somma i comandi probabilmente continueranno ad essere
fornito per molti anni, i programmi progettati per la portabilità tra i sistemi dovrebbero utilizzare il
nuovo nome.

L'algoritmo selezionato si basa su quello utilizzato dallo standard ISO/IEC 8802-3:1996
(Ethernet) per il campo della sequenza di controllo dei frame. L'algoritmo utilizzato non corrisponde al
definizione tecnica di a checksum; il termine è usato per ragioni storiche. La lunghezza di
il file è incluso nel calcolo CRC perché questo è parallelo all'inclusione di una lunghezza
campo da Ethernet nel suo CRC, ma anche perché protegge da collisioni involontarie
tra file che iniziano con diverse serie di zero ottetti. La possibilità che due
file diversi producono CRC identici è molto maggiore quando le loro lunghezze non lo sono
considerato. Mantenere la lunghezza e il checksum del file stesso separati produrrebbe a
algoritmo leggermente più robusto, ma l'uso storico è sempre stato quello di un singolo numero
(il checksum stampato) rappresenta la firma del file. È stato deciso che
l'uso storico era la considerazione più importante.

Le prime proposte contenevano modifiche all'algoritmo Ethernet che prevedevano l'estrazione
valori della tabella ogni volta che un risultato intermedio diventa zero. Questo è stato dimostrato di essere meno
robusto rispetto al metodo corrente e matematicamente difficile da descrivere o giustificare.

Il calcolo utilizzato è identico a quello fornito in pseudo-codice nel Sarwate . di riferimento
articolo. La resa dello pseudo-codice è:

X <- 0; Y <- 0;
per i <- m -1 passo -1 fino a quando 0 do
iniziare
T <- X(1) ^ A[i];
X(1) <- X(0); X(0) <- Y(1); Y(1) <- Y(0); Y(0) <- 0;
come: f[T] ed f'[T] denota , il T-esimo parole in , il
tavolo f ed f' ;
X <- X ^ f[T]; Y <- Y ^ f'[T];
fine

Lo pseudo-codice è riprodotto esattamente come dato; si noti tuttavia che nel caso di cksum,
A [i] rappresenta un byte del file, le parole X ed Y sono trattati come un singolo 32 bit
valore, e le tabelle f ed f' sono una singola tabella contenente valori a 32 bit.

L'articolo di Sarwate a cui si fa riferimento discute anche della generazione della tabella.

FUTURE INDICAZIONI


Nessuno.

Usa cksumposix online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

  • 1
    wxPython
    wxPython
    Un insieme di moduli di estensione Python che
    avvolgere le classi GUI multipiattaforma da
    wxWidgets.. Pubblico: sviluppatori. Utente
    interfaccia: X Window System (X11), Win32 ...
    Scarica wxPython
  • 2
    packfilemanager
    packfilemanager
    Questo è il file manager del pacchetto Total War
    progetto, a partire dalla versione 1.7. UN
    breve introduzione a Warscape
    mod:...
    Scarica packfilemanager
  • 3
    IPerf2
    IPerf2
    Uno strumento di misurazione del traffico di rete
    Prestazioni TCP e UDP con metriche
    intorno sia al throughput che alla latenza. Il
    gli obiettivi includono il mantenimento di un attivo
    merluzzo iperf...
    Scarica IPerf2
  • 4
    fre:ac - convertitore audio gratuito
    fre:ac - convertitore audio gratuito
    fre:ac è un convertitore audio e CD gratuito
    ripper per vari formati ed encoder.
    È dotato di MP3, MP4/M4A, WMA, Ogg
    Formato Vorbis, FLAC, AAC e Bonk
    sostegno, ...
    Scarica fre:ac - convertitore audio gratuito
  • 5
    matplotlib
    matplotlib
    Matplotlib è una libreria completa
    per creare statici, animati e
    visualizzazioni interattive in Python.
    Matplotlib rende le cose facili facili e
    cosa difficile...
    Scarica Matplotlib
  • 6
    Bone Man
    Bone Man
    Scrivi la tua logica chatbot una volta e
    collegarlo a uno dei disponibili
    servizi di messaggistica, incluso Amazon
    Alexa, Facebook Messenger, Slack,
    Telegram o anche tu...
    Scarica Botman
  • Di Più "

Comandi Linux

Ad