python flask应用程序中可以使用的最大密钥大小是多少?我在网上看到的所有例子,包括http://flask.pocoo.org/docs/0.12/quickstart/#sessions似乎都建议使用192位密钥,但我想知道是否可以使用256位密钥。
答案 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)
我相信只要你愿意,你就可以制作秘密密钥,但在宏观计划中,安全强度仍然是主观的。您的应用程序不会比其他人更安全。
我会坚持使用默认的建议值。必须有理由推荐他们。