Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

cksumposix — online w chmurze

Uruchom cksumposix u dostawcy bezpłatnego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie cksumposix, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu Mac OS

PROGRAM:

IMIĘ


cksum — zapisz sumy kontrolne i rozmiary plików

STRESZCZENIE


cksum [filet...]

OPIS


Połączenia cksum narzędzie obliczy i zapisze na standardowym wyjściu cykliczną kontrolę nadmiarowości
(CRC) dla każdego pliku wejściowego, a także wypisz na standardowe wyjście liczbę oktetów w każdym
plik. Użyty CRC jest oparty na wielomianu używanym do sprawdzania błędów CRC w
Norma ISO/IEC 8802-3:1996 (Ethernet).

Kodowanie sumy kontrolnej CRC jest zdefiniowane przez wielomian generujący:

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

Matematycznie wartość CRC odpowiadająca danemu plikowi powinna być zdefiniowana przez
następująca procedura:

1. n bity do oceny są uważane za współczynniki wielomianu mod 2
M(x) stopnia n-1. Te n bity to bity z pliku, z których najwięcej
znaczący bit będący najbardziej znaczącym bitem pierwszego oktetu pliku, a
ostatni bit jest najmniej znaczącym bitem ostatniego oktetu, uzupełniony bitami zerowymi (jeśli
konieczne) w celu uzyskania całkowitej liczby oktetów, po której następuje jeden lub więcej oktetów
reprezentujący długość pliku jako wartość binarną, najpierw najmniej znaczący oktet.
Należy użyć najmniejszej liczby oktetów, które mogą reprezentować tę liczbę całkowitą.

2. M(x) jest mnożone przez x32 (czyli przesunięte w lewo o 32 bity) i podzielone przez G(x) za pomocą
podział mod 2, tworząc resztę R(x) stopnia ≤ 31.

3. Współczynniki R(x) są uważane za sekwencję 32-bitową.

4. Sekwencja bitów jest uzupełniana, a wynikiem jest CRC.

OPCJE


Brak.

OPERANDY


Obsługiwane będą następujące argumenty:

filet Ścieżka do sprawdzanego pliku. Jeśli nie filet argumenty są określone,
należy użyć standardowego wejścia.

STDIN


Standardowe wejście jest używane, jeśli nie filet argumenty są określone i powinny być używane, jeśli a
filet operand to '-' a implementacja traktuje '-' co oznacza standardowe wejście.
W przeciwnym razie standardowe wejście nie będzie używane. Zobacz sekcję PLIKI WEJŚCIOWE.

WEJŚCIE AKTA


Pliki wejściowe mogą być dowolnego typu.

ŚRODOWISKO ZMIENNE


Następujące zmienne środowiskowe mają wpływ na wykonanie cksum:

JĘZYK Podaj wartość domyślną dla zmiennych internacjonalizacji, które nie są ustawione lub
zero. (Patrz tom Definicje podstawowe POSIX.1‐2008, Sekcja 8.2,
Umiędzynarodowienie Zmienne o pierwszeństwo internacjonalizacji
zmienne używane do określania wartości kategorii ustawień regionalnych).

LC_ALL Jeśli jest ustawiony na niepustą wartość ciągu, nadpisz wartości wszystkich pozostałych
zmienne internacjonalizacji.

LC_CTYPE Określ lokalizację dla interpretacji sekwencji bajtów danych tekstowych
jako znaki (na przykład jednobajtowe w przeciwieństwie do wielobajtowych znaków w
argumenty).

LC_MESSAGES
Określ ustawienia regionalne, które powinny być używane do wpływania na format i zawartość
komunikaty diagnostyczne zapisywane z błędem standardowym.

NLSPATH Określ lokalizację katalogów wiadomości do przetwarzania LC_MESSAGES.

ASYNCHRONICZNY WYDARZENIA


Domyślna.

STDOUT


Dla każdego pomyślnie przetworzonego pliku, cksum narzędzie napisze w następujący sposób
format:

"% u %d %s\n", <suma kontrolna>,# of oktety>,nazwa ścieżki>

Jeśli nie filet określono operand, nazwę ścieżki i jej wiodący pomija się.

STDERR


Błąd standardowy stosuje się tylko do komunikatów diagnostycznych.

WYDAJNOŚĆ AKTA


Brak.

ROZSZERZONY OPIS


Brak.

EXIT STATUS


Zwracane są następujące wartości wyjściowe:

0 Wszystkie pliki zostały pomyślnie przetworzone.

>0 Wystąpił błąd.

KONSEKWENCJE OF BŁĘDY


Domyślna.

Połączenia następujący działy jest informacyjny.

WNIOSEK ZASTOSOWANIE


Połączenia cksum narzędzie jest zwykle używane do szybkiego porównania podejrzanego pliku z zaufanym
taką samą wersję, aby zapewnić, że pliki przesyłane przez zaszumione media dotrą
nienaruszony. Jednak tego porównania nie można uznać za bezpieczne kryptograficznie. ten
szanse na to, że uszkodzony plik da taki sam CRC jak oryginał, są niewielkie; celowy
oszustwo jest trudne, ale prawdopodobnie nie niemożliwe.

Chociaż pliki wejściowe do cksum może być dowolnego typu, wyniki nie muszą być takie, jakie by były
oczekiwany na znakowych plikach urządzeń specjalnych lub na typach plików nie opisanych przez System
Wolumen interfejsów w POSIX.1‐2008. Ponieważ ten tom POSIX.1‐2008 nie określa
rozmiar bloku używany podczas wprowadzania danych, sumy kontrolne specjalnych plików znakowych nie muszą być przetwarzane
wszystkie dane w tych plikach.

Algorytm jest wyrażony w postaci strumienia bitów podzielonego na oktety. Jeśli plik jest
przesyłany między dwoma systemami i podlega dowolnej transformacji danych (np. zmianie
sortowanie bajtów little-endian na big-endian), nie można oczekiwać identycznych wartości CRC.
Implementacje wykonujące takie przekształcenia mogą się wydłużać cksum radzić sobie z takimi
sytuacje.

PRZYKŁADY


Brak.

RACJONALNE UZASADNIENIE


Poniższy program w języku C może być użyty jako model do opisu algorytmu. To
zakłada, że zwęglać to jeden oktet. Zakłada również, że cały plik jest dostępny dla
jedno przejście przez funkcję. Zrobiono to dla uproszczenia w demonstrowaniu
algorytm, a nie jako model implementacji.

statyczny unsigned długie 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,
0xdc3włączony, 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, 0x8cf30złe, 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)
{
/* Argumenty wejściowe:
* const unsigned char* b == sekwencja bajtów do sumy kontrolnej
* size_t n == długość sekwencji
*/

zarejestruj rozmiar_t i;
rejestr bez znaku c, s = 0;

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

/* Rozszerz o długość ciągu. */
podczas gdy (n != 0) {
c = n i 0377;
n >>= 8;
s = (s << 8) ^ crctab[(s >> 24) ^ c];
}

powrót ~s;
}

Historyczna praktyka pisania liczby „bloków” została zmieniona na pisanie
liczba oktetów, ponieważ ten ostatni jest nie tylko bardziej użyteczny, ale także historyczny
implementacje nie były spójne w definiowaniu, co oznaczał „blok”.

Zastosowany algorytm został wybrany w celu zwiększenia odporności operacyjnej cksum. Ani
System V ani BSD suma wybrano algorytm. Ponieważ każdy z nich był inny i
każdy był domyślnym zachowaniem w tych systemach, żaden realistyczny kompromis nie był dostępny, jeśli:
któryś z nich został wybrany — jakiś zestaw historycznych aplikacji ulegnie awarii. Dlatego nazwa
został zmieniony na cksum. Chociaż historyczny suma polecenia prawdopodobnie nadal będą
dostarczane przez wiele lat, programy przeznaczone do przenoszenia między systemami powinny wykorzystywać
nowe imie.

Wybrany algorytm jest oparty na algorytmie używanym przez normę ISO/IEC 8802-3:1996
(Ethernet) dla pola sekwencji sprawdzania ramki. Zastosowany algorytm nie pasuje do
definicja techniczna a suma kontrolna; termin ten jest używany ze względów historycznych. Długość
plik jest uwzględniany w obliczeniach CRC, ponieważ jest to równoznaczne z włączeniem długości
pole przez Ethernet w swoim CRC, ale także dlatego, że chroni przed przypadkowymi kolizjami
między plikami zaczynającymi się od różnych serii oktetów zerowych. Szansa, że ​​dwa
różne pliki dają identyczne CRC jest znacznie większa, gdy ich długość nie jest
uważane. Trzymanie osobno długości i sumy kontrolnej samego pliku dałoby
nieco bardziej niezawodny algorytm, ale historyczne użycie zawsze było takie, że jedna liczba
(suma kontrolna wydrukowana) reprezentuje podpis pliku. Zdecydowano, że
ważniejsze było wykorzystanie historyczne.

Wczesne propozycje zawierały modyfikacje algorytmu Ethernet, które obejmowały ekstrakcję
wartości w tabeli, gdy wynik pośredni ma wartość zero. Wykazano, że jest to mniej
solidna niż obecna metoda i matematycznie trudna do opisania lub uzasadnienia.

Zastosowane obliczenia są identyczne z podanymi w pseudokodzie w przywołanym Sarwate
artykuł. Odwzorowanie pseudokodu to:

X <− 0; Y <− 0;
dla i <− m -1 krok -1 aż do 0 do
rozpocząć
T <− X(1) ^ A[i];
X(1) <− X(0); X(0) <− Y(1); Y(1) <− Y(0); Y(0) <− 0;
jak: f[T] i f'[T] oznaczać dotychczasowy T-ty słowa in dotychczasowy
stół f i f' ;
X <− X ^ f[T]; Y <− Y ^ f'[T];
zakończenia

Pseudokod jest odtwarzany dokładnie tak, jak podano; należy jednak pamiętać, że w przypadku cksum,
A[i] reprezentuje bajt pliku, słowa X i Y są traktowane jako pojedyncze 32-bitowe
wartość, a tabele f i f' to pojedyncza tabela zawierająca wartości 32-bitowe.

W cytowanym artykule Sarwate omówiono również generowanie tabeli.

PRZYSZŁOŚĆ KIERUNKI


Brak.

Korzystaj z cksumposix online za pomocą usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    wxPython
    wxPython
    Zestaw modułów rozszerzeń Pythona, który
    zawiń międzyplatformowe klasy GUI z
    wxWidgets. Odbiorcy: Deweloperzy. Użytkownik
    interfejs: X Window System (X11), Win32...
    Pobierz wxPython
  • 2
    menedżer plików pakietów
    menedżer plików pakietów
    To jest menedżer plików pakietu Total War
    projekt, począwszy od wersji 1.7. A
    krótkie wprowadzenie do Warscape
    modowanie: ...
    Pobierz menedżera plików pack
  • 3
    IPerf2
    IPerf2
    Narzędzie do pomiaru ruchu sieciowego
    Wydajność TCP i UDP z metrykami
    zarówno pod względem przepustowości, jak i opóźnień. The
    cele obejmują utrzymanie aktywności
    iperf dorsz...
    Pobierz IPerf2
  • 4
    fre:ac - darmowy konwerter audio
    fre:ac - darmowy konwerter audio
    fre:ac to darmowy konwerter audio i CD
    ripper dla różnych formatów i koderów.
    Posiada MP3, MP4/M4A, WMA, Ogg
    Vorbis, FLAC, AAC i Bonk
    Pomoc, ...
    Pobierz fre:ac - darmowy konwerter audio
  • 5
    Biblioteki Matplotu
    Biblioteki Matplotu
    Matplotlib to wszechstronna biblioteka
    do tworzenia statycznych, animowanych i
    interaktywne wizualizacje w Pythonie.
    Matplotlib sprawia, że ​​proste rzeczy stają się łatwe i
    ciężka sprawa...
    Pobierz Matplotlib
  • 6
    Botman
    Botman
    Napisz logikę swojego chatbota raz i
    podłącz go do jednego z dostępnych
    usługi przesyłania wiadomości, w tym Amazon
    Alexa, Facebook Messenger, Slack,
    Telegram, a nawet ty...
    Pobierz BotMana
  • więcej »

Komendy systemu Linux

Ad