InglésFrancésEspañol

Ad


icono de página de OnWorks

cksumposix - Online en la nube

Ejecute cksumposix en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando cksumposix que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


cksum - escribe sumas de comprobación y tamaños de archivos

SINOPSIS


cksum [presentar...]

DESCRIPCIÓN


El cksum La empresa de servicios públicos calculará y escribirá en la salida estándar una verificación de redundancia cíclica
(CRC) para cada archivo de entrada, y también escribe en la salida estándar el número de octetos en cada
Archivo. El CRC utilizado se basa en el polinomio utilizado para la comprobación de errores de CRC en el
Norma ISO / IEC 8802-3: 1996 (Ethernet).

La codificación de la suma de comprobación CRC está definida por el polinomio generador:

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

Matemáticamente, el valor CRC correspondiente a un archivo dado será definido por el
siguiente procedimiento:

1. los n Los bits a evaluar se consideran los coeficientes de un polinomio mod 2
M(x) de grado n−1. Estos n bits son los bits del archivo, con más
siendo el bit significativo el bit más significativo del primer octeto del archivo y el
siendo el último bit el bit menos significativo del último octeto, relleno con cero bits (si
necesario) para lograr un número entero de octetos, seguido de uno o más octetos
que representa la longitud del archivo como un valor binario, primero el octeto menos significativo.
Se utilizará el menor número de octetos capaz de representar este número entero.

2. M(x) se multiplica por x32 (es decir, desplazado a la izquierda 32 bits) y dividido por G(x) utilizando
división mod 2, produciendo un resto R(x) de grado ≤ 31.

3. Los coeficientes de R(x) se consideran una secuencia de 32 bits.

4. La secuencia de bits se complementa y el resultado es el CRC.

CAMPUS


Ninguna.

OPERANDOS


Se admitirá el siguiente operando:

presentar Un nombre de ruta de un archivo que se va a comprobar. Si no presentar se especifican operandos, el
se utilizará la entrada estándar.

ESTÁNDAR


La entrada estándar se utilizará si no presentar se especifican operandos, y se utilizarán si un
presentar operando es '-' y la implementación trata el '-' en el sentido de entrada estándar.
De lo contrario, no se utilizará la entrada estándar. Consulte la sección ARCHIVOS DE ENTRADA.

ENTRADA ARCHIVOS


Los archivos de entrada pueden ser de cualquier tipo.

MEDIO AMBIENTE VARIABLES


Las siguientes variables de entorno afectarán la ejecución de cksum:

IDIOMA Proporcione un valor predeterminado para las variables de internacionalización que no están configuradas o
nulo. (Consulte el volumen de Definiciones básicas de POSIX.1‐2008, Sección 8.2,
Internacionalización Variables por la precedencia de la internacionalización
variables utilizadas para determinar los valores de las categorías de configuración regional).

LC_TODOS Si se establece en un valor de cadena no vacío, anule los valores de todos los demás
Variables de internacionalización.

LC_CTYPE Determinar la configuración regional para la interpretación de secuencias de bytes de datos de texto.
como caracteres (por ejemplo, de un solo byte en lugar de caracteres de varios bytes en
argumentos).

LC_MENSAJES
Determine la configuración regional que se debe utilizar para afectar el formato y el contenido de
mensajes de diagnóstico escritos en error estándar.

NLSPATH Determinar la ubicación de los catálogos de mensajes para el procesamiento de LC_MENSAJES.

ASINCRÓNICO EVENTOS


Por defecto.

SALIDA ESTÁNDAR


Para cada archivo procesado con éxito, el cksum La utilidad debe escribir lo siguiente
formato:

"% u %d % s \ n ", <suma de comprobación>,# of octetos>,ruta>

Si no es correcto presentar se especificó el operando, el nombre de la ruta y su se omitirá.

ESTDERR


El error estándar se utilizará solo para mensajes de diagnóstico.

SALIDA ARCHIVOS


Ninguna.

EXTENDIDO DESCRIPCIÓN


Ninguna.

SALIR ESTADO


Se devolverán los siguientes valores de salida:

0 Todos los archivos se procesaron correctamente.

> 0 Ocurrió un error.

CONSECUENCIAS OF ERRORES


Por defecto.

El siguiendo (secciones) en informativo.

SOLICITUD USO


El cksum La utilidad se utiliza normalmente para comparar rápidamente un archivo sospechoso con un archivo de confianza.
versión del mismo, como para garantizar que los archivos transmitidos a través de medios ruidosos lleguen
intacto. Sin embargo, esta comparación no puede considerarse criptográficamente segura. El
las posibilidades de que un archivo dañado produzca el mismo CRC que el original son pequeñas; deliberar
el engaño es difícil, pero probablemente no imposible.

Aunque los archivos de entrada cksum puede ser de cualquier tipo, los resultados no necesitan ser los que serían
esperado en archivos de dispositivos especiales de caracteres o en tipos de archivos no descritos por el sistema
Volumen de interfaces de POSIX.1‐2008. Dado que este volumen de POSIX.1‐2008 no especifica el
tamaño de bloque utilizado al realizar la entrada, las sumas de comprobación de archivos especiales de caracteres no necesitan procesarse
todos los datos de esos archivos.

El algoritmo se expresa en términos de un tren de bits dividido en octetos. Si un archivo es
transmitido entre dos sistemas y se somete a cualquier transformación de datos (como cambiar
orden de bytes de little-endian a big-endian), no se pueden esperar valores de CRC idénticos.
Las implementaciones que realizan tales transformaciones pueden extenderse cksum para manejar tal
situaciones

EJEMPLOS


Ninguna.

RAZÓN FUNDAMENTAL


El siguiente programa en lenguaje C se puede utilizar como modelo para describir el algoritmo. Eso
asume que un tanque es un octeto. También asume que todo el archivo está disponible para
uno pasa por la función. Esto se hizo para simplificar la demostración de la
algoritmo, más que como un modelo de implementación.

estático no firmado Corto crctab [] = {
0 x 00000000,
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, 0 x 95609039,
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, 0 x 34867077, 0x30476dc0,
0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5,
0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07,
0x7c56b6b0, 0 x 71159069, 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, 0 x 46863638, 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, 0x8cf30malo, 0x81b02d74,
0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21,
0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a,
0 x 61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0 x 18197087,
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)
{
/ * Argumentos de entrada:
* const unsigned char * b == secuencia de bytes a la suma de comprobación
* size_t n == longitud de la secuencia
*/

registrar size_t i;
registrar c sin signo, s = 0;

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

/ * Extiende con la longitud de la cadena. * /
while (n! = 0) {
c = n & 0377;
n >> = 8;
s = (s << 8) ^ crctab [(s >> 24) ^ c];
}

return ~ s;
}

La práctica histórica de escribir el número de `` bloques '' se ha cambiado a escribir
el número de octetos, ya que este último no sólo es más útil, sino también desde el histórico
Las implementaciones no han sido consistentes en la definición de lo que significaba un `` bloque ''.

El algoritmo utilizado fue seleccionado para aumentar la robustez operativa de cksum. Ninguno
el Sistema V ni BSD suma se seleccionó el algoritmo. Dado que cada uno de estos era diferente y
cada uno era el comportamiento predeterminado en esos sistemas, no había ningún compromiso realista disponible si
cualquiera de los dos fue seleccionado: se rompería algún conjunto de aplicaciones históricas. Por tanto, el nombre
fue cambiado a cksum. Aunque el histórico suma los comandos probablemente seguirán siendo
proporcionado durante muchos años, los programas diseñados para la portabilidad entre sistemas deben utilizar la
nuevo nombre.

El algoritmo seleccionado se basa en el utilizado por la norma ISO / IEC 8802‐3: 1996
(Ethernet) para el campo de secuencia de verificación de tramas. El algoritmo utilizado no coincide con el
definición técnica de un suma de comprobación; el término se utiliza por razones históricas. El largo de
el archivo se incluye en el cálculo CRC porque esto es paralelo a la inclusión de una longitud
campo por Ethernet en su CRC, sino también porque protege contra colisiones inadvertidas
entre archivos que comienzan con diferentes series de cero octetos. La posibilidad de que dos
diferentes archivos producen CRC idénticos es mucho mayor cuando sus longitudes no son
considerado. Mantener la longitud y la suma de comprobación del propio archivo por separado produciría una
algoritmo un poco más robusto, pero el uso histórico siempre ha sido que un solo número
(la suma de comprobación impresa) representa la firma del archivo. Se decidió que
el uso histórico fue la consideración más importante.

Las primeras propuestas contenían modificaciones al algoritmo de Ethernet que implicaban extraer
valores de la tabla siempre que un resultado intermedio pasa a ser cero. Esto demostró ser menos
robusto que el método actual y matemáticamente difícil de describir o justificar.

El cálculo utilizado es idéntico al dado en pseudocódigo en el Sarwate referenciado.
artículo. La interpretación del pseudocódigo es:

X <− 0; Y <− 0;
para i <− m -1 paso -1 hasta 0 do
comenzar
T <− X(1) ^ Ai];
X(1) <− X(0); X(0) <− Y(1); Y(1) <− Y(0); Y(0) <− 0;
cómo: pie] y pie] denotar las T-ésimo palabras in las
mesa f y f' ;
X <− X ^ pie]; Y <− Y ^ pie];
final

El pseudocódigo se reproduce exactamente como se indica; sin embargo, tenga en cuenta que en el caso de cksum,
A [i] representa un byte del archivo, las palabras X y Y se tratan como un solo 32 bits
valor, y las tablas f y f' son una única tabla que contiene valores de 32 bits.

El artículo de Sarwate al que se hace referencia también analiza la generación de la tabla.

EL FUTURO DIRECCIONES


Ninguna.

Use cksumposix en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad