问题标签 [binascii]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
48 浏览

python-2.7 - Pyserial阅读不尊重咬的数量

我正在尝试读取串行端口。问题是脚本有效,但读取命令似乎不尊重参数(要读取 2 个字节)。

脚本的典型输出(返回函数“readPosValue”中的 ans 变量)是:

它们显然超过 16 位。使用的脚本:

)

0 投票
0 回答
36 浏览

python-3.x - 用于二进制文件搜索查询的文本到十六进制二进制格式

我需要在二进制文件中搜索特定字符串。字符串来自文本文件中的单词列表。我认为将文本文件中的单词翻译成可以搜索的格式会更容易。我需要将字符串翻译成的格式是十六进制字节表示法。例如,我需要搜索字符串 TRUE,这就是我需要的最终产品的样子:

我一直试图通过几种方式做到这一点,但没有成功。这是我目前的尝试:

这给了我以下输出:

字节编码添加了一个额外的反斜杠,当我尝试搜索二进制文件时,它当然会失败。有任何想法吗?

0 投票
2 回答
3278 浏览

python-3.x - Python 中的 CRC32(对比 CRC32b)

我正在尝试生成一些 crc32 哈希,但它似乎使用 crc32b 算法zlibbinascii即使它们各自的函数是简单的zlib.crc32binascii.crc32. 我可以尝试其他用于哈希生成的 python 资源吗?有趣的是,我之前发现 R 的“digest”包也实现了 crc32b,但没有提及 crc32。

我所说的 CRC32 和 CRC32b 的一些例子:

在这里你可以在下拉列表中看到:http ://www.md5calc.com/crc32

这里,CRC32b 在右侧:https ://hash.online-convert.com/crc32-generator

这是一个以 php 为中心的关于 distition 的讨论:crc32 和 crc32b 有什么区别?

这里我们可以看到python正在实现CRC32b:How to calculate CRC32 with Python to match online results?

谢谢

0 投票
1 回答
441 浏览

python - Python 中的 Ruby pack('H*') 等价物

我很难弄清楚为什么输出不一样。请注意,如果您比较两者,差异非常小OUT。我想要实现的是 Python 中的输出与 Ruby 中的输出相同。

红宝石:

IN:['034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192'].pack('H*')

OUT:\x03AQ\xA3\xECF\xB5g\nh+\nc9O\x865\x87\xD1\xBC\x97H;\elp\xEBX\xE7\xF0\xAE\xD1\x92

Python:

IN:unhexlify('034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192') OUT:\x03AQ\xa3\xecF\xb5g\nh+\nc9O\x865\x87\xd1\xbc\x97H;\x1blp\xebX\xe7\xf0\xae\xd1\x92

0 投票
0 回答
370 浏览

python - 如何在 Python 中以小端格式将数据存储在二进制文件中

我有一个二进制文件。我想在我的 python 代码中从终端读取十六进制数据。我正在执行程序如下: python hello.py "2DB6C" "CDEF"

"2DB6C" :- (Address in hex) 表示 temp.bin 文件中的 GoTo 地址 <2DB6C>,我想从这里开始写入数据。

"CDEF" :- 要写入二进制文件的数据。请记住,数据以十六进制格式给出。

我想以小端格式写入数据。但这对我不起作用。

它以“CDEF”的形式写入文件。但我想以小端格式写入数据。

请帮我修复它。

0 投票
1 回答
803 浏览

python - Python crc_hqx(data, value) 正确实现

解决了!谢谢rcgdlr。

我只是在学习 CRC,不确定我的实现是否正确。我有几个问题:

  1. 我是否将 crc 包含在数据部分中(我相信我会,但我不确定;它可能取决于实现)?

bytes_trans = cmd_in[5:-2] # -2 包含 crc 或 -4 不包含 crc?

  1. 如何确定我的初始值?我在网上看到的大多数实现要么使用 0,要么通过 crc 本身。我试过这两种方法:

    crc_start = int.from_bytes(cmd_in[-4:-2], byteorder='little', signed=False) # 来自消息的CRC

    crc = binascii.crc_hqx(bytes_trans, crc_start)

    crc2 = binascii.crc_hqx(bytes_trans, 0)

  2. 我怎么知道它什么时候起作用?我相信我正在寻找与 CRC 匹配的 0 或整数?

  3. 到目前为止,我还没有成功,这表明我使用了错误的输入,或者 CRC 实际上不是我正在使用的文档中指定的 CCITT CRC-16。我已经尝试过大多数 PyCRC 实现,例如 DNP 和 Kermit,但也没有运气。有没有办法确认我确实在使用 CCITT CRC-16?是否有可能以不同方式实施的因素使其成为略微修改的 CCITT CRC-16?

0 投票
1 回答
1326 浏览

python - 十六进制到二进制:binascii.unhexlify 的奇数长度字符串错误

我想将底部的这个文件这样的十六进制文件转换为二进制,但我给出了这个错误:我想我需要使用 .strip() 方法,但我不太确定!

这是十六进制文件:

这是我的代码:

0 投票
1 回答
861 浏览

python - 写入行数超过 45 字节的二进制文件:binascii.Error: 一次最多 45 字节

我的目标是读取二进制文件并将其转换为文本。我的代码是:

我收到此错误:

有没有办法解决这个问题,或者除了 binascii 之外我还可以使用其他模块吗?谢谢!

0 投票
1 回答
48 浏览

python - 详细变换的逆

我正在使用一段代码来转换例如这个 256 个整数的列表:

到这个 512 个字符的字符串:

执行此转换的代码是:

我需要换一种方式,从字符串到整数列表。我认为这binascii.unhexlify肯定会有用,我已经尝试过了,但仍然无法弄清楚这种转换的逆是什么。有任何想法吗?

0 投票
2 回答
1756 浏览

python - 在python3中将pysnmp OctetString转换为十六进制

我编写了 python 代码,使用 pysnmp 将 snmp get 发送到设备,然后将输出转换为十六进制字符串。该代码在 python 2.7 中成功运行,但在 Python3.7 中没有

在 python2.7 和 python3.7 中,snmp get 返回一个pysnmp.proto.rfc1902.OctetString然后使用binascii.hexlify.

在 python2.7 中,转换是通过将 传递str(OctateString_var)给 hexlify 函数来完成的。

在 python3.7 中,我使用str(OctateString_var).encode()hexlify 函数需要 python3 中的字节字符串。

我注意到生成的十六进制的结果与来自 python3.7 的结果不同,它有额外的字节并最终产生错误的值

在 python2.7 上运行时,我得到以下结果:

在 python3.7 上运行时,我得到以下结果: