Учитывая это:
It%27s%20me%21
Не закодировать его и превратить его в обычный текст?
Посмотрите urllib.unquote
и urllib.unquote_plus
. Это поможет решить вашу проблему. Технически, однако, "кодирование" url - это процесс передачи аргументов в url с помощью символов & и ? (например, www.foo.com?x=11&y=12
).
в python2
>>> import urlparse
>>> urlparse.unquote('It%27s%20me%21')
"It's me!"
В python3
>>> import urllib.parse
>>> urllib.parse.unquote('It%27s%20me%21')
"It's me!"
Посмотрите на urllib.unquote
и urllib.unquote _ плюс
. Это решит вашу проблему. Технически, хотя url «encoding» - это процесс передачи аргументов в url с & и? символы (например, www.foo.com?x=11&y=12
).
Все, кроме ceeyajoz, используют неправильную логику. Трудно думать о безопасности.
В обоих случаях используется электронная почта в виде обычного текста. Оба в равной степени небезопасны при взломе электронной почты.
Неважно, истекает ли срок действия URL-адреса, поскольку адрес электронной почты взломан, хакер может просто запросить другой URL-адрес сброса пароля. Если временный пароль изменился, хакер может просто запросить новый. В любом случае, ты облажался.
Так что я говорю просто отправить пароль, это путь его на один шаг меньше для пользователя, чтобы выбрать новый.
ПРАВКА Когда я сказал «отправить пароль» это было в контексте ОП, где вы посылаете новый случайный пароль.
-121--1523043-Используйте метод unquote из urllib .
>>> from urllib import unquote
>>> unquote('It%27s%20me%21')
"It's me!"