问题标签 [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 回答
1665 浏览

python - 我无法在 Python 中将十六进制转换为字符串

所以我已经完成了这段代码(这只是将字符串转换为十六进制的部分),当我尝试解密时,我收到这条消息:找到非十六进制数字

这是字符串到十六进制代码:

这里是字符串代码的十六进制

程序从文件中读取 pw。

该程序要大得多,但这是让我陷入困境并且无法正常工作的部分。

我用来将字符串转换为十六进制的方法有效,但十六进制到字符串却没有。

有人能帮助我吗?

0 投票
2 回答
14018 浏览

python-2.7 - binascii.unhexlify 出现奇数字符串错误

我正在尝试将 ASCII 字符串来回转换为其二进制表示,如下所示。

但是,最后我收到以下错误,这对我来说没有多大意义。

1 binascii.unhexlify('%x' % n)

TypeError:奇数长度的字符串

有什么问题,我该如何解决?

0 投票
2 回答
4982 浏览

python - Python:如何捕获此错误(无法获取错误名称) - binascii.Error

我将 base64 模块用于 b64decode() 函数,但是某些文本字符串会引发此错误:

我知道这是因为字符串的长度不是 4 的倍数,这是 base64 编码文本的要求。

我不想仅仅在字符串的末尾添加 '=' 以使其成为 4 的倍数,而是要捕获错误并简单地声明字符串不是 base64 编码的。它使用一般的'except:'工作,但是我想捕获特定的错误,但我找不到相同的错误,因为它不像其他错误那样非常具体,并且'除了 binascii.Error: ' 显然是未定义的。帮助?

0 投票
1 回答
1284 浏览

python - 在 Python 中将字符串转换为十六进制

这是我从数组构建消息的函数。有两种类型的检查:

  • 检查“C”、“G”、“A”-> [("{'chip_id': '00012345', 'check_type': 'C'}", 1494273855.0)]

  • 检查“P”-> [“{'纬度':43.5529109,'经度':1.4910036,'检查类型':'P'}”,1494273855.0]

使用此功能,我可以将任何支票转换为所需的消息。它似乎工作得很好。

“C” check_type 返回消息,如“C0x5910e6b80x592c40b7P”。

“P” check_type 返回消息,如“P0x5910ca4b0x420f12d00x428fca07”

但是,以另一种方式,我需要解密这些消息并获取所有信息。我可以为我的“P”消息做到这一点。

对于 check_type "C" 我在需要解密时遇到了一些问题。

举个例子,我将构建以下检查:

[("{'chip_id': '00014876', 'check_type': 'C'}", 1494279864.0)]

其中“chip_id”始终为 8 位,“check_type”将是“C”、“G”或“A”(此处无关紧要)和时间戳。

我的函数返回:

C0x5910e6b80x592c40b7P

  • C是我的类型。
  • 0x5910e6b8 是我的时间戳。如果我执行“int("0x5910e6b8", 0)”,我会在支票中找到“1494279864”时间戳
  • 0x592c40b7 是我的chip_id。

那是我的问题。我可以用以下方法加密我的chip_id:

  • a = int(binascii.hexlify(chip_id))
  • hex(struct.unpack('<I', struct.pack('<f', a))[0])

但是,我找不到如何从加密消息中的十六进制(“0x592c40b7”)中获取我的chip_id(“00012345”)。

有人知道我该怎么做吗?

0 投票
1 回答
2808 浏览

python - 以 2 为基数的 int() 的 Python 无效文字

我正在尝试一个简单的隐写 python 程序。编码有效,但我收到错误 ValueError: invalid literal for int() with base 2: '0b#99c1f#...... 该值应该是二进制的,我找不到错误。我正在使用 python 2.7 这是代码:

0 投票
1 回答
326 浏览

python - Python binascii.unhexlify 正在转换换行符。我可以防止这种情况吗?

我有一串代表十六进制数字的字符对(例如,0f 表示十进制 15)。我需要这个二进制格式,所以我打电话 binArray = binascii.unhexlify(finalString)

我安装了“Windows 上的 Ubuntu 上的 bash”,当我从那里执行此操作时,它工作正常。

但是,我需要从 windows 环境中的 .bat 文件调用脚本。当我从 .bat 文件中调用完全相同的 python 程序时,如果 unhexlify 在十六进制字符串中看到“0a”,它会将其转换为 0d 0a(在二进制输出中)。这不是文本文件,行尾转换正在破坏我的数据!

当我从 Windows 环境中调用它时,有没有办法说服 unhexlify 停止这样做?

不得不自己进行转换似乎是一种浪费。

0 投票
1 回答
1859 浏览

python - 将字符串中的字节发送到 Redis,以便将其用作 Celery 任务的参数

我想使用 Redis 作为代理将字符串中的字节发送到 Celery 的任务,但我收到如下所示的错误:

我要发送到的缩短的(主要是最多 100 万个字符串)示例数据:

负责调用Celery任务的部分代码:

这是tasks/my_task.py文件的样子:

celery.py

也许有一些聪明的方法可以在将字符串发送到 Redis 之前对其进行编码并在运行任务时对其进行解码?

0 投票
1 回答
3426 浏览

python-3.x - Zlib 和 binascii 不使用 Python3.6 构建

我一直在尝试从 Ubuntu 14.04 上的源代码构建 Python3.6.1。README 推荐的命令序列:

后者崩溃是因为它无法导入 binascii。在其输出中有以下内容:

试图跳过make test并开始make install我在 import 失败后崩溃了zlib。Ubuntu 论坛中的一些人建议从存储库更新所有 zlib 的包。那没有帮助。我该如何解决?

0 投票
1 回答
3836 浏览

python - 使用 Binascii Hexlify 输入

我正在尝试hexlify从用户输入,但出现以下错误:

如果我b在字符串之前使用它,那么它可以工作,但我如何使用输入来做到这一点?
这是代码:

我试着做:

但它给出了以下错误:

我怎样才能做到这一点?

0 投票
1 回答
7990 浏览

python - Python 错误 TypeError:参数应该是字节、缓冲区或 ASCII 字符串,而不是“NoneType”

我正在尝试创建一个工具来在 python 3 中传输二进制文件并在服务器端遇到一个奇怪的问题。在服务器代码中,您将看到我注释掉了一行,它将从客户端接收到的数据打印到屏幕上。

注释掉这一行后,我收到错误 TypeError: argument should be bytes, buffer or ASCII string, not 'NoneType' 并且二进制文件显然已损坏。

如果我从服务器代码中取消注释打印语句,则文件会按预期传输,并且二进制文件会完好无损地接收。我尝试在 self.data 上检查 None,但是,从未检测到 None 类型。

我完全困惑为什么“print(self.data)”行允许代码执行而没有错误。任何想法表示赞赏。

服务器接收文件:

客户端发送文件: