迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python Crc32 介绍

作者:迹忆客 最近更新:2023/06/01 浏览次数:

本篇文章将介绍使用 Python 中的 binascii 或 zlib 库计算数据的 crc32。


Python CRC32

CRC32 是数据的校验和,也称为循环冗余校验,用于检查数据的数字传输中存在的错误。 在数字传输中,由于噪声或干扰,输出端的数据可能会相对于输入端的数据发生变化,为了检查传输输出端的数据是否发生变化,我们可以使用CRC32来找出差异 输入和输出数据的校验和。

如果数据的输入和输出校验和之差为零,则传输没有错误,输出端的数据与传输输入端的数据相同。 数据校验和表示存在的位数,并在发送前附加到文件。

我们已经知道输入数据的校验和,我们只需要找到输出数据的校验和,它们的差异将告诉我们数据中存在的错误。 我们可以使用 binascii 或 zlib() 库的 crc32() 函数来查找数据的 CRC32 或校验和。

我们必须在 crc32() 函数中以字节为单位传递数据,该函数将返回该数据的 32 位无符号整数。 如果输入数据不是字节数据类型,我们必须先将其转换为字节,然后再将其传递到 crc32() 函数中。

如果 crc32() 函数内部传递的输入值为零,则输出也将为零。 例如,让我们使用 binascii 和 zlib 库来查找字符串的 CRC32 校验和。

请参阅下面的代码。

import binascii
import zlib

crc1 = binascii.crc32(b'abcd')
crc2 = zlib.crc32(b'abcd')
print(crc1)
print(crc2)
Output:

3984772369
3984772369

在上面的代码中,我们在 crc32() 函数中使用了字符 b 来将字符串转换为字节。 用于查找校验和的算法不是加密算法并且不太准确,因此不能用于哈希目的。

上面的代码在Python 3中测试,会返回32位无符号整数,但是如果我们在Python 2中运行相同的代码,结果将是一个32位有符号整数,两者的结果是不一样的。 要将 Python 2 的结果转换为无符号的,我们必须使用 & 字符对输出与 0xffffffff 进行按位与运算。

binascii 库可以将数据从二进制转换为 ASCII,就像二进制到十六进制一样。 它可以使用其 b2a_hex() 函数将上述字节值转换为十六进制。

zlib 库可以压缩和解压缩数据。

上一篇:在 Python 中使用 Luhn 算法验证数字

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中使用 Luhn 算法验证数字

发布时间:2023/06/02 浏览次数:164 分类:Python

这篇文章解释了用 Python 编写 Luhn 算法并根据算法验证数字。在 Python 中使用 Luhn 算法验证数字 Luhn 算法验证器有助于检查合法数字并将其与不正确或拼写错误的输入分开。

Python - 匹配多行文本块的正则表达式

发布时间:2023/06/02 浏览次数:192 分类:Python

本文讨论了在多行字符串中搜索特定模式的方法。 该解决方案折衷了已知和未知模式的几种方法,并解释了匹配模式的工作原理。编写正则表达式以匹配多行字符串的原因

在 Python 中使用正则表达式捕获组

发布时间:2023/06/02 浏览次数:78 分类:Python

本篇文章介绍了如何借助 Python 中的正则表达式捕获组。 我们还将了解这些群体以及我们如何捕获它们。 让我们开始吧。在 Python 中使用正则表达式捕获组

Python 正则表达式转义

发布时间:2023/06/02 浏览次数:64 分类:Python

这篇文章是关于 Python 正则表达式转义的。 此外,我们将介绍 Python 正则表达式转义以及如何通过适当的示例代码使用它,以及 Python 正则表达式的多种用途。

在 Python 中使用 Re 模块的正则表达式通配符

发布时间:2023/06/02 浏览次数:51 分类:Python

通配符在正则表达式中用作表示或交换一个或多个字符的符号。 这些主要用于简化搜索条件。本文详细解释了如何在 Python 中使用带有通配符的 re.sub() 来匹配字符串与正则表达式。使用 re.sub

在 Python 中为对象添加属性

发布时间:2023/06/02 浏览次数:88 分类:Python

我们将介绍如何在 Python 中为对象添加属性。 我们还将通过示例介绍如何在 Python 中更改对象的属性。在 Python 中为对象添加属性 在 Python 中,我们时常使用对象,因为 Python 是一种面向对象的语

Python 中的匿名对象

发布时间:2023/06/02 浏览次数:185 分类:Python

本篇文章将介绍在 Python 中创建匿名对象的方法。在 Python 中使用 namedtuple 类创建匿名对象 匿名对象只是一个没有真实名称的值。 因此,它被称为匿名。

Python 中的短路评估

发布时间:2023/06/02 浏览次数:193 分类:Python

本文是关于使用逻辑运算符在 Python 中显示短路行为。Python 中的逻辑运算符 or (或)运算符。短路是指当表达式的真值已经确定时终止布尔运算。 Python 解释器以从左到右的方式计算表达式。

Python 比较两个 CSV 文件并打印差异

发布时间:2023/06/02 浏览次数:92 分类:Python

本文将讨论比较两个 CSV 文件的各种方法。 我们将包括执行此操作的最“Pythonic”方式和可帮助简化此任务的外部 Python 模块。最后,我们将包括一种使用 Pandas DataFrames 识别 CSV 文件差异的方法

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便