如何在Flask中为图片文件生成加密URL链接
我正在使用Flask框架,想要像下面的代码那样使用蓝图功能。我希望生成一个加密的链接,并在网页浏览器中显示一个图片文件。我看过itsdangerous模块,但不知道怎么返回原始的图片文件(比如png、jpg、gif等)。
@blueprint.route("/")
def image_file_link_encrypt(encryptlink):
return send_file(imagefilelocation)
我该怎么做呢?因为我对Python和编程还很陌生,所以不知道该怎么创建这个功能。我需要这样做的原因是文件路径中包含用户的电子邮件地址(这涉及到信息泄露)。现有的系统是用PHP做的,我想在Flask这个微框架中建立相同的链接结构。我看过其他帖子,比如如何在Flask中提供静态文件,但还是不知道该如何为我的情况编写代码。谢谢!
1 个回答
1
isdangerous
是基于哈希函数和 hmac
的意思是,你可以对你的路径字符串进行编码,但很难将其解码(你只能验证它是否正确)。
其中一种方法是使用加密随机数来创建路径,或者对内容或真实路径进行哈希处理,然后将网址和真实文件名存储在数据库中。
另一种方法是使用可逆加密,比如 AES
。