Python:填充不正确

时间:2015-01-17 14:31:45

标签: python base64 snapchat

我正在制作一个下载各种故事的节目。 这个:

base64.b64decode(snap['media_iv']))

收到错误Error: Incorrect padding

实际的media_iv是:GhcakENDGbTNY6GzE1AV3w==


from __future__ import print_function

import os.path
import sys
from getpass import getpass
import base64
from pprint import pprint

from docopt import docopt
from Tkinter import *

from pysnap import get_file_extension, Snapchat

def printsnaps():
    s = Snapchat()
    s.login(u.get(), p.get())
    for snap in s.get_friend_stories():
        pprint(snap)
        path = snap["id"]
        data = s.get_story_blob(snap['media_id'],
            base64.b64decode(snap['media_key']),
            base64.b64decode(snap['media_iv']))
        if data is None:
            continue
        with (openpath, 'wb') as f:
            f.write(data)
top = Tk()
u = StringVar()
p = StringVar()
user = Entry(top, text="usermame", textvariable=u)
user.pack()
pswd = Entry(top, text="password", textvariable=p)
pswd.pack()
logb = Button(top, text="login", width = 15, command=printsnaps)
logb.pack()

top.mainloop()

解决方案:教程错了,它不需要解码

1 个答案:

答案 0 :(得分:1)

尝试使用字符串的继承解码方法:

str(snap['media_iv']).decode('base64')

我试过解码它,但它解码为一堆二进制废话,在SnapChat的情况下不应该发生。也许,你的给定值是不正确的。