如何在Flask中为图片文件生成加密URL链接

-1 投票
1 回答
1009 浏览
提问于 2025-04-19 11:58

我正在使用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

撰写回答