Commit b9e51be1 authored by Michal Čihař's avatar Michal Čihař

Fix Captcha on Python 3

Signed-off-by: default avatarMichal Čihař <michal@cihar.com>
parent 9508a471
...@@ -25,6 +25,7 @@ from __future__ import unicode_literals ...@@ -25,6 +25,7 @@ from __future__ import unicode_literals
import ast import ast
import binascii import binascii
from base64 import b64encode, b64decode
import hashlib import hashlib
import operator import operator
from random import randint, choice from random import randint, choice
...@@ -151,7 +152,7 @@ def hash_question(question, timestamp): ...@@ -151,7 +152,7 @@ def hash_question(question, timestamp):
return '{0}{1}{2}'.format( return '{0}{1}{2}'.format(
hexsha, hexsha,
timestamp, timestamp,
question.encode('base64') b64encode(question.encode('utf-8')).decode('ascii')
) )
...@@ -164,8 +165,8 @@ def unhash_question(question): ...@@ -164,8 +165,8 @@ def unhash_question(question):
hexsha = question[:40] hexsha = question[:40]
timestamp = question[40:50] timestamp = question[40:50]
try: try:
question = question[50:].decode('base64') question = b64decode(question[50:]).decode('utf-8')
except binascii.Error: except (binascii.Error, UnicodeError):
raise ValueError('Invalid encoding') raise ValueError('Invalid encoding')
if hexsha != checksum_question(question, timestamp): if hexsha != checksum_question(question, timestamp):
raise ValueError('Tampered question!') raise ValueError('Tampered question!')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment