pitón crc32

Ammar Ali 21 junio 2023
pitón crc32

Este tutorial discutirá cómo calcular el crc32 de los datos usando la biblioteca binascii o zlib en Python.

Pitón CRC32

El CRC32 es la suma de verificación de datos, también conocida como verificación de redundancia cíclica, que se utiliza para verificar los errores presentes en una transmisión digital de datos. En la transmisión digital, los datos en la salida pueden cambiar con respecto a los datos en la entrada debido al ruido o la interferencia, y para verificar si los datos en la salida de la transmisión cambian, podemos usar el CRC32 para encontrar la diferencia en el suma de comprobación de los datos en la entrada y la salida.

Si la diferencia entre la suma de verificación de datos de entrada y salida es cero, no hay error en la transmisión y los datos en la salida son los mismos que los datos en la entrada de la transmisión. La suma de comprobación de los datos representa el número de bits presentes y se adjunta al archivo antes de enviarlo.

Ya conocemos el checksum de los datos de entrada, solo tenemos que encontrar el checksum de los datos de salida, y su diferencia nos dirá sobre el error presente en los datos. Podemos usar la función crc32() de la biblioteca binascii o zlib() para encontrar el CRC32 o la suma de comprobación de los datos.

Tenemos que pasar los datos en bytes dentro de la función crc32() y la función devolverá el entero sin signo de 32 bits de esos datos. Si los datos de entrada no están en el tipo de datos de bytes, debemos convertirlos a bytes antes de pasarlos dentro de la función crc32().

Si el valor de entrada pasado dentro de la función crc32() es cero, la salida también será cero. Por ejemplo, usemos las bibliotecas binascii y zlib para encontrar la suma de verificación CRC32 de una cadena.

Vea el código a continuación.

import binascii
import zlib

crc1 = binascii.crc32(b"abcd")
crc2 = zlib.crc32(b"abcd")
print(crc1)
print(crc2)

Producción :

3984772369
3984772369

En el código anterior, usamos el carácter b dentro de la función crc32() para convertir la cadena en bytes. El algoritmo utilizado para encontrar la suma de comprobación no es un algoritmo criptográfico y no es muy preciso, por lo que no se puede utilizar con fines de hashing.

El código anterior se prueba en Python 3 y devolverá un entero sin signo de 32 bits, pero si ejecutamos el mismo código en Python 2, el resultado será un entero con signo de 32 bits, y ambos resultados no serán iguales. Para convertir el resultado de Python 2 a sin firmar, tenemos que tomar el Y bit a bit de la salida con 0xffffffff usando el carácter &.

La biblioteca binascii puede convertir datos de binario a ASCII, como binario a hexadecimal. Puede convertir el valor del byte anterior a hexadecimal usando su función b2a_hex().

La biblioteca zlib puede comprimir y descomprimir datos.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - Python Checksum