之前就看到过Flask中的itsdangerous
看到:
提到“itsdangerous(一种签名算法,主要使用HMAC加密算法”
-》原来itsdangerous是加密算法啊。。。
去搜索:
Flask itsdangerous
itsdangerous
itsdangerous 0.24 : Python Package Index
“Various helpers to pass trusted data to untrusted environments and back.
It’s Dangerous
… so better sign this
Various helpers to pass data to untrusted environments and to get it back safe and sound.
This repository provides a module that is a port of the django signing module. It’s not directly copied but some changes were applied to make it work better on its own.”
pallets/itsdangerous: Various helpers to pass trusted data to untrusted environments
itsdangerous 中文文档 — itsdangerous
“有时候你想向不可信的环境发送一些数据,但如何安全完成这个任务呢?解决的方法就是签名。使用只有你自己知道的密钥,来加密签名你的数据,并把加密后的数据发给别人。当你取回数据时,你就可以确保没人篡改过这份数据。
诚然,接收者可以破译内容,来看看你的包裹里有什么,但他们没办法修改你的内容,除非他们也有你的密钥。所以只要你保管好你的密钥,并且密钥足够复杂,一切就OK了。
itsdangerous
内部默认使用了HMAC和SHA1来签名,基于 Django 签名模块。它也支持JSON Web 签名 (JWS)。这个库采用BSD协议,由Armin Ronacher编写,而大部分设计与实现的版权归Simon Willison和其他的把这个库变为现实的Django爱好者们。
适用案例
* 在取消订阅某个通讯时,你可以在URL里序列化并且签名一个用户的ID。这种情况下你不需要生成一个一次性的token并把它们存到数据库中。在任何的激活账户的链接或类似的情形下,同样适用。
* 被签名的对象可以被存入cookie中或其他不可信来源,这意味着你不需要在服务端保存session,这样可以降低数据库读取的次数。
* 通常签名后的信息可以安全地往返与服务端与客户端之间,这个特性可以用于将服务端的状态传递到客户端再传递回来。”
转载请注明:在路上 » 【整理】Flask中的itsdangerous