问题标签 [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.
python-2.7 - Pyserial阅读不尊重咬的数量
我正在尝试读取串行端口。问题是脚本有效,但读取命令似乎不尊重参数(要读取 2 个字节)。
脚本的典型输出(返回函数“readPosValue”中的 ans 变量)是:
它们显然超过 16 位。使用的脚本:
)
python-3.x - 用于二进制文件搜索查询的文本到十六进制二进制格式
我需要在二进制文件中搜索特定字符串。字符串来自文本文件中的单词列表。我认为将文本文件中的单词翻译成可以搜索的格式会更容易。我需要将字符串翻译成的格式是十六进制字节表示法。例如,我需要搜索字符串 TRUE,这就是我需要的最终产品的样子:
我一直试图通过几种方式做到这一点,但没有成功。这是我目前的尝试:
这给了我以下输出:
字节编码添加了一个额外的反斜杠,当我尝试搜索二进制文件时,它当然会失败。有任何想法吗?
python-3.x - Python 中的 CRC32(对比 CRC32b)
我正在尝试生成一些 crc32 哈希,但它似乎使用 crc32b 算法zlib
,binascii
即使它们各自的函数是简单的zlib.crc32
和binascii.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?
谢谢
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
python - 如何在 Python 中以小端格式将数据存储在二进制文件中
我有一个二进制文件。我想在我的 python 代码中从终端读取十六进制数据。我正在执行程序如下: python hello.py "2DB6C" "CDEF"
"2DB6C" :- (Address in hex) 表示 temp.bin 文件中的 GoTo 地址 <2DB6C>,我想从这里开始写入数据。
"CDEF" :- 要写入二进制文件的数据。请记住,数据以十六进制格式给出。
我想以小端格式写入数据。但这对我不起作用。
它以“CDEF”的形式写入文件。但我想以小端格式写入数据。
请帮我修复它。
python - Python crc_hqx(data, value) 正确实现
解决了!谢谢rcgdlr。
我只是在学习 CRC,不确定我的实现是否正确。我有几个问题:
- 我是否将 crc 包含在数据部分中(我相信我会,但我不确定;它可能取决于实现)?
bytes_trans = cmd_in[5:-2] # -2 包含 crc 或 -4 不包含 crc?
如何确定我的初始值?我在网上看到的大多数实现要么使用 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)
我怎么知道它什么时候起作用?我相信我正在寻找与 CRC 匹配的 0 或整数?
到目前为止,我还没有成功,这表明我使用了错误的输入,或者 CRC 实际上不是我正在使用的文档中指定的 CCITT CRC-16。我已经尝试过大多数 PyCRC 实现,例如 DNP 和 Kermit,但也没有运气。有没有办法确认我确实在使用 CCITT CRC-16?是否有可能以不同方式实施的因素使其成为略微修改的 CCITT CRC-16?
python - 十六进制到二进制:binascii.unhexlify 的奇数长度字符串错误
我想将底部的这个文件这样的十六进制文件转换为二进制,但我给出了这个错误:我想我需要使用 .strip() 方法,但我不太确定!
这是十六进制文件:
这是我的代码:
python - 写入行数超过 45 字节的二进制文件:binascii.Error: 一次最多 45 字节
我的目标是读取二进制文件并将其转换为文本。我的代码是:
我收到此错误:
有没有办法解决这个问题,或者除了 binascii 之外我还可以使用其他模块吗?谢谢!
python - 详细变换的逆
我正在使用一段代码来转换例如这个 256 个整数的列表:
到这个 512 个字符的字符串:
执行此转换的代码是:
我需要换一种方式,从字符串到整数列表。我认为这binascii.unhexlify
肯定会有用,我已经尝试过了,但仍然无法弄清楚这种转换的逆是什么。有任何想法吗?
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 上运行时,我得到以下结果: