烧瓶密钥长度

时间:2018-02-04 08:41:52

标签: python flask secret-key

python flask应用程序中可以使用的最大密钥大小是多少?我在网上看到的所有例子,包括http://flask.pocoo.org/docs/0.12/quickstart/#sessions似乎都建议使用192位密钥,但我想知道是否可以使用256位密钥。

3 个答案:

答案 0 :(得分:2)

Flask使用itsdangerous.Signer进行会话数据签名,签名时使用的密钥不是SECRET_KEY配置选项提供的密钥,而is derived只有HKDF。< / p>

默认情况下,Flask uses HMAC-SHA1作为HKDF算法,您只能获得160位签名密钥,SECRET_KEY的长度没有区别。为了获得256位会话签名密钥,您可以扩展flask.sessions.SecureCookieSessionInterface,将digest_method更改为SHA256,当然,您仍然需要一个冗长的随机SECRET_KEY足够的熵。

答案 1 :(得分:1)

是的,可以使用32字节的密钥大小。

但是,来自Applied Criptography

  

更长的键长度更好,但只能达到一个点。 AES会有   128位,192位和256位密钥长度。这远远超过   在可预见的未来需要。事实上,我们甚至无法想象一个   可以进行256位强力搜索的世界。这个需要   物理学的一些根本性突破和我们对物理学的理解   宇宙。

所以遵循文档:24字节的大小并随机生成它应该没问题。

另外,请查看Is it possible to break a 128-bit key?。这将为您提供一个关于断开128位密钥需要多长时间的想法。

答案 2 :(得分:0)

我相信只要你愿意,你就可以制作秘密密钥,但在宏观计划中,安全强度仍然是主观的。您的应用程序不会比其他人更安全。

我会坚持使用默认的建议值。必须有理由推荐他们。