EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

cksumposix - Online în cloud

Rulați cksumposix în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda cksumposix care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


cksum — scrieți sumele și dimensiunile fișierelor

REZUMAT


cksum [fişier...]

DESCRIERE


cksum utilitatea trebuie să calculeze și să scrie la ieșirea standard o verificare ciclică a redundanței
(CRC) pentru fiecare fișier de intrare și, de asemenea, scrieți la ieșirea standard numărul de octeți din fiecare
fişier. CRC utilizat se bazează pe polinomul utilizat pentru verificarea erorilor CRC în
Standardul ISO/IEC 8802‐3:1996 (Ethernet).

Codificarea pentru suma de control CRC este definită de polinomul generator:

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

Din punct de vedere matematic, valoarea CRC corespunzătoare unui fișier dat va fi definită de
următoarea procedură:

1. n biții care trebuie evaluați sunt considerați a fi coeficienții unui polinom mod 2
M(x) de grad n−1. Aceste n biții sunt biții din fișier, cu cei mai mulți
bit semnificativ fiind cel mai semnificativ bit al primului octet al fișierului și
ultimul bit fiind cel mai puțin semnificativ bit al ultimului octet, umplut cu zero biți (dacă
necesar) pentru a obține un număr întreg de octeți, urmat de unul sau mai mulți octeți
reprezentând lungimea fișierului ca valoare binară, mai întâi octetul cel mai puțin semnificativ.
Se utilizează cel mai mic număr de octeți capabili să reprezinte acest număr întreg.

2. M(x) se înmulțește cu x32 (adică deplasat la stânga cu 32 de biți) și împărțit la G(x) folosind
mod 2 diviziune, producând un rest R(x) de grad ≤ 31.

3. Coeficienții de R(x) sunt considerate a fi o secvență de 32 de biți.

4. Secvența de biți este completată și rezultatul este CRC.

OPŢIUNI


Nici unul.

OPERANDE


Următorul operand va fi suportat:

fişier O cale a unui fișier care trebuie verificat. Daca nu fişier operanzii sunt specificati, the
se utilizează intrarea standard.

Stdin


Intrarea standard va fi utilizată dacă nu fişier operanzii sunt specificați și vor fi utilizați dacă a
fişier operandul este '-' iar implementarea tratează '-' ca însemnând intrare standard.
În caz contrar, intrarea standard nu va fi utilizată. Consultați secțiunea FIȘIERE DE INTRARE.

INTRARE DOSARE


Fișierele de intrare pot fi de orice tip de fișier.

MEDIUL VARIABILE


Următoarele variabile de mediu vor afecta execuția cksum:

LIMBA Furnizați o valoare implicită pentru variabilele de internaționalizare care sunt nesetate sau
nul. (A se vedea volumul Definiții de bază din POSIX.1‐2008, Secțiune 8.2,
Internaționalizare Variabile pentru prioritatea internaţionalizării
variabile utilizate pentru a determina valorile categoriilor locale.)

LC_ALL Dacă este setată la o valoare șir nevid, suprascrieți valorile tuturor celorlalte
variabile de internaţionalizare.

LC_CTYPE Determinați locația pentru interpretarea secvențelor de octeți de date text
ca caractere (de exemplu, caractere pe un singur octet, spre deosebire de caractere pe mai mulți octeți în
argumente).

LC_MESSAGES
Determinați locația care ar trebui utilizată pentru a afecta formatul și conținutul
mesaje de diagnostic scrise la eroare standard.

NLSPATH Determinați locația cataloagelor de mesaje pentru procesarea LC_MESSAGES.

ASINCRON EVENIMENTE


Implicit.

Stdout


Pentru fiecare fișier procesat cu succes, fișierul cksum utilitatea va scrie în cele ce urmează
format:

„%u %d %s\n", <checksum>,# of octeți>,caii de acces>

Daca nu fişier a fost specificat operandul, numele căii și începutul acestuia va fi omis.

Stderr


Eroarea standard va fi utilizată numai pentru mesajele de diagnosticare.

REZULTATE DOSARE


Nici unul.

EXTENDED DESCRIERE


Nici unul.

EXIT STAREA


Următoarele valori de ieșire vor fi returnate:

0 Toate fișierele au fost procesate cu succes.

>0 A apărut o eroare.

CONSECINȚE OF ERORI


Implicit.

următor secțiuni sunt informativ.

APLICARE UTILIZARE


cksum utilitarul este de obicei folosit pentru a compara rapid un fișier suspect cu un fișier de încredere
versiunea acestuia, astfel încât să se asigure că sosesc fișierele transmise prin medii zgomotoase
intact. Cu toate acestea, această comparație nu poate fi considerată sigură din punct de vedere criptografic. The
șansele ca un fișier deteriorat să producă același CRC ca și originalul sunt mici; delibera
înșelăciunea este dificilă, dar probabil nu imposibilă.

Deși fișierele de intrare la cksum poate fi de orice tip, rezultatele nu trebuie să fie ceea ce ar fi
așteptat pe fișierele dispozitivului cu caractere speciale sau pe tipuri de fișiere care nu sunt descrise de sistem
Volumul interfețelor POSIX.1‐2008. Întrucât acest volum al POSIX.1‐2008 nu specifică
dimensiunea blocului utilizată atunci când introduceți, sumele de control ale fișierelor speciale de caractere nu trebuie procesate
toate datele din acele fișiere.

Algoritmul este exprimat în termeni de flux de biți împărțit în octeți. Dacă un fișier este
transmis între două sisteme și suferă orice transformare a datelor (cum ar fi schimbarea
ordonarea octetilor little-endian la big-endian), nu se pot aștepta valori CRC identice.
Implementările care efectuează astfel de transformări se pot extinde cksum să se ocupe de asemenea
situații.

EXEMPLE


Nici unul.

FUNDAMENTARE


Următorul program în limbaj C poate fi folosit ca model pentru a descrie algoritmul. Aceasta
presupune că a car de război este de un octet. De asemenea, presupune că întregul fișier este disponibil pentru
o trecere prin funcție. Acest lucru a fost făcut pentru simplitate în demonstrarea
algoritm, mai degrabă decât ca model de implementare.

static nesemnat lung crctab[] = {
0x00000000,
0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 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, 0x8cf30bad, 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
};

unsigned long memcrc (const unsigned char *b, size_t n)
{
/* Argumente de intrare:
* const unsigned char* b == secvență de octeți la suma de control
* size_t n == lungimea secvenței
*/

înregistrează dimensiunea_t i;
înregistrează nesemnat c, s = 0;

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

/* Se extinde cu lungimea șirului. */
în timp ce (n != 0) {
c = n & 0377;
n >>= 8;
s = (s << 8) ^ crctab[(s >> 24) ^ c];
}

return ~s;
}

Practica istorică de a scrie numărul de „blocuri” a fost schimbată în scriere
numărul de octeți, deoarece acesta din urmă este nu numai mai util, ci și din punct de vedere istoric
implementările nu au fost consecvente în definirea a ceea ce înseamnă un ``bloc''.

Algoritmul utilizat a fost selectat pentru a crește robustețea operațională a cksum. Nici
Sistemul V sau BSD sumă algoritmul a fost selectat. Întrucât fiecare dintre acestea era diferit și
fiecare era comportamentul implicit pe acele sisteme, nu era disponibil niciun compromis realist dacă
fie au fost selectate — un set de aplicații istorice s-ar rupe. Prin urmare, numele
a fost schimbat în cksum. Deși istoricul sumă comenzile vor continua probabil să fie
furnizate de mulți ani, programele concepute pentru portabilitatea între sisteme ar trebui să utilizeze
nume nou.

Algoritmul selectat se bazează pe cel utilizat de standardul ISO/IEC 8802‐3:1996
(Ethernet) pentru câmpul secvenței de verificare a cadrelor. Algoritmul utilizat nu se potrivește cu
definiția tehnică a a checksum; termenul este folosit din motive istorice. Lungimea de
fișierul este inclus în calculul CRC deoarece aceasta este paralelă cu includerea unei lungimi
câmp prin Ethernet în CRC, dar și pentru că protejează împotriva coliziunilor accidentale
între fișierele care încep cu serii diferite de octeți zero. Șansa ca doi
fișiere diferite produc CRC identice este mult mai mare atunci când lungimile lor nu sunt
considerată. Menținerea separată a lungimii și a sumei de control a fișierului în sine ar produce a
algoritm ceva mai robust, dar utilizarea istorică a fost întotdeauna un singur număr
(suma de control așa cum este tipărită) reprezintă semnătura fișierului. S-a hotărât că
utilizarea istorică a fost cel mai important aspect.

Propunerile timpurii conțineau modificări ale algoritmului Ethernet care implicau extragerea
valorile din tabel ori de câte ori un rezultat intermediar a devenit zero. S-a demonstrat că acest lucru este mai puțin
robust decât metoda actuală și dificil de descris sau justificat din punct de vedere matematic.

Calculul utilizat este identic cu cel dat în pseudo-cod în Sarwate referit
articol. Redarea pseudo-codului este:

X <− 0; Y <− 0;
pentru i <− m -1 pas -1 până la 0 do
începe
T <− X(1) ^ A[i];
X(1) <− X(0); X(0) <− Y(1); Y(1) <− Y(0); Y(0) <− 0;
Cum? Sau „Ce: f[T] și f'[T] denota il T-th cuvinte in il
tabel f și f' ;
X <− X ^ f[T]; Y <− Y ^ f'[T];
capăt

Pseudo-codul este reprodus exact așa cum este dat; reţineţi totuşi că în cazul cksum,
A[i] reprezintă un octet al fișierului, cuvintele X și Y sunt tratate ca un singur pe 32 de biți
valoarea și tabelele f și f' sunt un singur tabel care conține valori pe 32 de biți.

Articolul Sarwate la care se face referire discută și despre generarea tabelului.

VIITOR INSTRUCTIUNI


Nici unul.

Utilizați cksumposix online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

  • 1
    wxPython
    wxPython
    Un set de module de extensie Python care
    împachetați clasele GUI multiplatformă din
    wxWidgets.. Public: Dezvoltatori. Utilizator
    interfață: X Window System (X11), Win32...
    Descărcați wxPython
  • 2
    packfilemanager
    packfilemanager
    Acesta este managerul de fișiere al pachetului Total War
    proiect, începând cu versiunea 1.7. A
    scurtă introducere în Warscape
    modding:...
    Descărcați packfilemanager
  • 3
    IPerf2
    IPerf2
    Un instrument de măsurare a traficului de rețea
    Performanță TCP și UDP cu metrici
    atât în ​​jurul debitului cât și al latenței. The
    obiectivele includ menținerea unui activ
    cod iperf...
    Descărcați IPerf2
  • 4
    fre:ac - convertor audio gratuit
    fre:ac - convertor audio gratuit
    fre:ac este un convertor audio și CD gratuit
    ripper pentru diverse formate și codificatoare.
    Dispune de MP3, MP4/M4A, WMA, Ogg
    Format Vorbis, FLAC, AAC și Bonk
    a sustine, ...
    Descărcați fre:ac - convertor audio gratuit
  • 5
    matplotlib
    matplotlib
    Matplotlib este o bibliotecă cuprinzătoare
    pentru crearea statice, animate și
    vizualizări interactive în Python.
    Matplotlib ușurează lucrurile și
    lucru greu...
    Descărcați Matplotlib
  • 6
    Botman
    Botman
    Scrieți logica chatbot-ului o dată și
    conectați-l la unul dintre cele disponibile
    servicii de mesagerie, inclusiv Amazon
    Alexa, Facebook Messenger, Slack,
    Telegram sau chiar tu...
    Descărcați BotMan
  • Mai mult »

Comenzi Linux

Ad