У меня есть небольшой простой сервер во Flask, и я хотел бы иметь возможность перенаправить на страницу пользователя по следующему маршруту:
@app.route("/something/<string:username>", methods=["GET"])
Когда это чистое имя пользователя, это не проблема,однако я хочу добавить простое запутывание, чтобы при получении ключа создавалась новая строка, которая все еще может быть использована в веб-адресе.
Я попытал счастья с несколькими методами, найденными в Stack Overflow, но с выходными строкамиУ меня есть различные проблемы, такие как не-ASCII символы, или символы, которые вызывают у меня проблемы в маршрутизации (например, наличие /
, которое сбивает с толку Flask).
В идеале я хотел бы иметь две функции, obfuscate(key, string)
иdeobfuscate(key, string)
, поэтому я смогу использовать вот так:
@app.route("/something/<string:username>", methods=["GET"])
def user_page(username):
# username is an obfuscated string
clear_username = deobfuscate(MY_KEY, username)
return flask.make_response("Hi {}".format(clear_username), 200)
...
...
def create_user(username):
# username is a clear string
save_to_database(username)
return obfuscate(MY_KEY, username)
Подводя итог, запутывание должно быть простым, но достаточно хорошим, чтобы вы не смогли понять его, взглянув наURL-адрес и двусторонний, чтобы я мог выяснить, какой была исходная строка, и распечатать ее.