标签: binascii

binascii.unhexlify 的奇数字符串错误

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

s=chr(0)*15 + chr(0x01)
bst = bin(int(binascii.hexlify(s), 16))
n = int(bst, 2)
binascii.unhexlify('%x' % n) 
Run Code Online (Sandbox Code Playgroud)

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

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

类型错误:奇数字符串

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

binary python-2.7 binascii

5
推荐指数
1
解决办法
1万
查看次数

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

我正在使用base64模块用于b64decode()函数,但是某些文本字符串会抛出此错误:

'binascii.Error: Incorrect Padding'.
Run Code Online (Sandbox Code Playgroud)

我理解这是因为字符串不是4的长度倍数,这是base64编码文本的要求.

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

python base64 exception binascii

5
推荐指数
2
解决办法
2046
查看次数

Python 中的 CRC32(与 CRC32b)

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

CRC32 和 CRC32b 含义的一些示例:

您可以在下拉列表中看到两者:http://www.md5calc.com/crc32

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

这是一个以 php 为中心的讨论:What is the Difference Between crc32 and crc32b?

这里我们可以看到python正在实现CRC32b:如何用Python计算CRC32以匹配在线结果?

谢谢

zlib python-3.x binascii

4
推荐指数
1
解决办法
5243
查看次数

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

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

[2017-06-17 21:27:13,826] ERROR in app: Exception on /endpoint_method [POST]
Traceback (most recent call last):
  File "/Users/developer/my_project/venv/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/developer/my_project/venv/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/developer/my_project/venv/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/developer/my_project/venv/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/developer/my_project/venv/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/developer/my_project/application.py", line 23, in endpoint_method
    task = my_task.execute.delay(request.data)
  File "/Users/developer/my_project/venv/lib/python2.7/site-packages/celery/app/task.py", line 412, in delay
    return self.apply_async(args, …
Run Code Online (Sandbox Code Playgroud)

python redis celery celery-task binascii

3
推荐指数
1
解决办法
1565
查看次数

json.loads和Redis在python 3.5中

我在redis列表中用json.dumps()和RPUSH(ed)创建了一个JSON对象.当使用LRANGE(redis.lrange())返回JSON时,我收到一个二进制字符串

 b'{"si":"00:ff" ...
Run Code Online (Sandbox Code Playgroud)

所以json.loads()引发了一个错误:***TypeError:JSON对象必须是str,而不是'bytes'我应该如何恢复为ascii?

python json redis binascii

2
推荐指数
1
解决办法
1185
查看次数

使用 Binascii 对输入进行十六进制化

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

TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)

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

import binascii as bs
text = input('Please Enter Your text:')
bs.hexlify(text)
Run Code Online (Sandbox Code Playgroud)

我试着做:

text = input('Please enter you text:')
import binascii as bs
bs.hexlify(bytes(text))
Run Code Online (Sandbox Code Playgroud)

但它给出了以下错误:

TypeError: string argument without an encoding
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python python-3.x binascii

2
推荐指数
1
解决办法
3727
查看次数

Python中的Ruby包('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

蟒蛇:

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

ruby python pack binascii

1
推荐指数
1
解决办法
158
查看次数