Синтаксис base64 в Python не работает
Этот код работает в командной строке.
python -c 'import base64,sys; u,p=sys.argv[1:3]; print base64.encodestring("%s\x00%s\x00%s" % (u,u,p))' user pass
вывод dXNlcgB1c2VyAHBhc3M=
Я пытаюсь заставить это работать в моем сценарии
test = base64.encodestring("{0}{0}{1}").format(acct_name,pw)
print test
выходной ezB9ezB9ezF9
кто-нибудь нет, что я делаю не так? благодарю вас.
2 ответа
Решение
У вас есть ошибка в скобках. Вместо:
test = base64.encodestring("{0}{0}{1}").format(acct_name,pw)
(который сначала кодирует "{0}{0}{1}" в base64, а затем пытается заменить переменные, используя format
),
у тебя должно быть
test = base64.encodestring("{0}{0}{1}".format(acct_name,pw))
(который сначала подставляет переменные, используя format
а затем кодирует в base64).
Спасибо SZYM я все готово. Это код, который заставляет его работать
test = base64.encodestring("{0}\x00{0}\x00{1}".format(acct_name,pw))
Оказывается, требуется hex \x00, поэтому программа, получающая хэш, знает, где останавливается имя пользователя и начинается пароль. -alF