相关疑难解决方法(0)

如何在python3中解码base64

我有一个base64加密代码,我无法在python3.5中解码

import base64
code = "YWRtaW46MjAyY2I5NjJhYzU5MDc1Yjk2NGIwNzE1MmQyMzRiNzA" # Unencrypt is 202cb962ac59075b964b07152d234b70
base64.b64decode(code)
Run Code Online (Sandbox Code Playgroud)

结果:

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

但是同一个网站(base64decode)可以解码它,

请问有谁可以告诉我为什么,以及如何使用python3.5解码呢?

谢谢

python base64

14
推荐指数
2
解决办法
3万
查看次数

解码python base64字符串

我已经提取了图像的forecolor,texture和edgemap值的base64字符串,我有一个包含以下结构的列表:

forecolor=AgCEAg4DUQQCBQQGARMBFQE1AmUB
edge=AfCAFg5iIATCPwTAEIiBFggBDw
forecolor=AgAsAQ0CJAMcDRgOGg8DHQYeBzYBPQ4-DU0ETgNtBm4CfQI
Run Code Online (Sandbox Code Playgroud)

我试图解码这些值,但我收到错误的填充错误,这是确切的错误:

Traceback (most recent call last):
  File "ImageVectorData.py", line 44, in <module>
    print "Decoded String: " + decoded.decode('base64', 'strict')
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/base64_codec.py", line 42, in base64_decode
    output = base64.decodestring(input)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/base64.py", line 321, in decodestring
    return binascii.a2b_base64(s)
binascii.Error: Incorrect padding
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

for item in value:
    print "String before Split: " + item
    if item.split("=")[0] == "forecolor":
        decoded = (item.split("=")[1])
        print "String to be decoded: " + decoded
        print "Decoded String: " + decoded.decode('base64', 'strict')
Run Code Online (Sandbox Code Playgroud)

当第一个forecolor base64字符串被解码时,我也看到了一个有趣的输出:这是输出:

String …
Run Code Online (Sandbox Code Playgroud)

python base64 decode

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

在应用内购买后base64解码谷歌签名时出现填充错误

有时,在一个人通过IAB和Android设备进行购买后,由于"TypeError:Incorrect padding"异常,客户端发送回服务器的签名无法进行base64解码.

服务器代码如下所示,其中"signature"从我们的客户端传递到服务器,从IAB API获取值:

signature_encoded = signature.encode()
key = RSA.importKey(GOOGLE_PLAY_STORE_KEY_PEM)
verifier = PKCS1_v1_5.new(key)
signed_data_hash = SHA.new(signed_data)
# fails here SOMETIMES
signature_decoded = base64.urlsafe_b64decode(signature_encoded)
Run Code Online (Sandbox Code Playgroud)

"签名"字符串的长度应该可以被4整除,但有时它们的长度为342并给出这个填充错误.

我已经尝试添加"=="到最后,这让我们绕过异常,但与"signed_data_hash"相比,结果无效(即verifier.verify(signed_data_hash,signature_decoded)返回False).

我不认为这是一次黑客攻击,因为我们看到的客户日志表明他们正在通过我们的购买流程.

这里的任何帮助将不胜感激!谢谢!

python android in-app-billing

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

Django项目寻找"属性'_session_cache'"

所以我有一个不使用数据库的Django项目('DATABASES'设置被注释掉了).我选择使用Django,因为我将来可能需要数据库功能.无论如何,我已经在这个项目上工作了几个月而没有任何问题.我正在运行Linux Mint,python manage.py runserver到目前为止使用该命令并没有遇到麻烦.

好吧,今天我启动了应用程序并启动了本地服务器没有任何问题.然后我尝试在浏览器中打开应用程序并收到相当可怕的错误消息:

Traceback (most recent call last):
  File "/home/peter/.virtualenvs/vis_it/lib/python3.3/site-packages/django/contrib/sessions/backends/base.py", line 170, in _get_session
    return self._session_cache
AttributeError: 'SessionStore' object has no attribute '_session_cache'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/peter/.virtualenvs/vis_it/lib/python3.3/site-packages/django/core/handlers/base.py", line 87, in get_response
    response = middleware_method(request)
  File "/home/peter/.virtualenvs/vis_it/lib/python3.3/site-packages/django/contrib/auth/middleware.py", line 34, in process_request
    if user and hasattr(user, 'get_session_auth_hash'):
  File "/home/peter/.virtualenvs/vis_it/lib/python3.3/site-packages/django/utils/functional.py", line 224, in inner
    self._setup()
  File "/home/peter/.virtualenvs/vis_it/lib/python3.3/site-packages/django/utils/functional.py", line 357, in _setup
    self._wrapped = self._setupfunc()
  File "/home/peter/.virtualenvs/vis_it/lib/python3.3/site-packages/django/contrib/auth/middleware.py", line …
Run Code Online (Sandbox Code Playgroud)

python database django session-cache

6
推荐指数
3
解决办法
5833
查看次数

在 Python 中 Base64 解码此字符串时如何避免“不正确的填充”错误

我有以下字符串,我想使用 Python 对其进行 Base64 解码。

eyJqa3UiOiJodHRwczovL2U5N2I4YTlkNjcyZTRjZTQ4NDVlYzY5NDdjZDY2ZWY2LXNiLmJhYXMubmludGVuZG8uY29tLzEuMC4wL2NlcnRpZmljYXRlcyIsImtpZCI6ImZlOWRiYmZmLTQ3MGItNDZjOC04YmFmLTFiNzY5OGRlZTViZSIsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJodHRwczovL2U5N2I4YTlkNjcyZTRjZTQ4NDVlYzY5NDdjZDY2ZWY2LXNiLmJhYXMubmludGVuZG8uY29tIiwiZXhwIjoxNTQ1MTg1NDk2LCJ0eXAiOiJpZF90b2tlbiIsImF1ZCI6IjhkOTc1NTllNjNlY2NkNTYiLCJiczpkaWQiOiI2NjJhZTQwOWYwNTQyYTBjIiwic3ViIjoiOTNkYmYwNDdiYTI3NzQ5NSIsImp0aSI6IjY1NDg4ZjJmLTI1NzAtNDBkYy04ODQ3LTMzODNlZWIxMGJiYiIsIm5pbnRlbmRvIjp7ImFpIjoiMDEwMGY4MDAwMDQ5MjAwMCIsImF2IjoiMDAwMCIsImVkaSI6ImJjNTdiYmM3MTZlMDA1MGFmOWRhN2NkYTIzMWRjZDgyIiwiYXQiOjE1NDUxNzQ2OTZ9LCJpYXQiOjE1NDUxNzQ2OTZ9。ZMUIt3wYrbfhXnnDh4WraGlKrZy0YuL5prluY70sU_-0W5XvWIB-xmTrLz7LJWHEGwTskcWf81_HBq_mSb75rMfTAEBwBmOJ4ITmhdnXksz8w7EDOWuPPSEft5XLMNOMD16ztEOYe5ddU_iqNEbT56L7fcAJEXv0FWy6H_OutxOglYpDaNkcj6CWJ7dpA0JbqerR9dEszaLwyn1ZBDPVD0YeAIm5bEr61imeedzMb0amxlTl4R87mqK6epsFUnRy6p6Klr27_DlTLQ-gej09W7NeNzONCj4thHgCr9szAiaN28krfTc2fobz3qFCoC_eQghiIIZBe_-Lksng3Eg6tw

当我转到这个https://www.base64decode.org/并将其放入时,我可以看到解码字符串的第一部分是可读的纯文本:

在此处输入图片说明

但是,当我尝试使用 Python 对其进行解码时,它失败了:

>>> import base64
>>> x = "eyJ......"
>>> base64.b64decode(x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/base64.py", line 76, in b64decode
    raise TypeError(msg)
TypeError: Incorrect padding
Run Code Online (Sandbox Code Playgroud)

我尝试了这种补救措施。但它并没有改变由此产生的错误。我该如何解决这个问题?为什么它不像那个网站那样解码?

python base64 decode

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

Python:将通过toDataURL获取的PNG字符串转换为二进制PNG文件

toDataURL 方法(参见例如https://developer.mozilla.org/de/docs/Web/API/HTMLCanvasElement/toDataURL)给出了以下形式的 PNG 的字符串表示:

   "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNby
   blAAAADElEQVQImWNgoBMAAABpAAFEI8ARAAAAAElFTkSuQmCC"
Run Code Online (Sandbox Code Playgroud)

如何在 python 3 中将这样的 PNG 字符串转换为二进制 PNG 文件?

python png

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

binascii.Error:填充不正确,即使字符串长度是4的倍数

我试图通过python代码将base64字符串转换为图像,但我得到binascii.Error:不正确的填充我已经完成了我的解决方案,但他们只建议检查字符串长度是可分4,如果不是通过添加它可以被4整除base64编码刺痛结束时的'='字符.请帮忙.

PYTHON代码:(请检查驱动器中的代码以获得更多可见性)

import base64

strOne= 'data:image/png;base64,iVBORw0KGgoAAAANSU...string has 200000 character thats why I couldn t paste'
 print 'strOne Length',len(strOne)
 print 'StrOne Length is completely divisible by 4 (len%4),(len/4):', len(strOne)%4,len(strOne)/4

 with open("imageToSave.png", "wb") as fh:
     fh.write(strOne.strip().decode('base64'))
Run Code Online (Sandbox Code Playgroud)

输出:

strOne Length 200000
StrOne Length is completely divisible by 4 (len%4),(len/4): 0 50000
Traceback (most recent call last):
  File "/tests.py", line 13, in <module>
    fh.write(strOne.strip().decode('base64'))
  File "/usr/lib/python2.7/encodings/base64_codec.py", line 42, in base64_decode
    output = base64.decodestring(input)
  File "/usr/lib/python2.7/base64.py", line 328, in decodestring …
Run Code Online (Sandbox Code Playgroud)

python base64 python-2.7

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

B64解码的问题

使用非mime message.get方法,我将取出正文/数据并尝试对其进行解码,以便简单地用英语显示消息.我遇到的问题是一些消息解码很好,然后突然我得到不正确的填充问题.我试过替换+和/无济于事.

为什么会发生这种情况,我该如何解决?

这是我的messages.get方法:

try:
message = service.users().messages().get(userId=user_id, id=msg_id).execute()

# Pull Raw Message Body from Response
message_raw = message['payload']['parts'][0]['body']['data']

# Decode the raw message
message_decoded = base64.b64decode(message_raw)

# Print the messages
print message_decoded
Run Code Online (Sandbox Code Playgroud)

更新

服务

gmail_service = build('gmail', 'v1', http=http)
Run Code Online (Sandbox Code Playgroud)

回溯错误

Traceback (most recent call last):
File "gmail.py", line 166, in <module>
GetMessage(gmail_service, 'me', message_id)
File "gmail.py", line 155, in GetMessage
message_decoded = base64.b64decode(message_raw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/base64.py",        line 76, in b64decode
raise TypeError(msg)
TypeError: Incorrect padding
Run Code Online (Sandbox Code Playgroud)

使用urlsafe时出现回溯错误

Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python gmail-api

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