generate_password_hash
にSHA-1の使用は、脆弱ではありません。 See the discussion in chat.
PBKDF2のようにハッシュを連鎖させている場合、強力なパスワードを壊す可能性がある人と区別がつきません。
cryptography-devメーリングリストの詳細については、現在のセキュリティには影響しませんが、わかりやすくするためにデフォルトのSHA-512を変更することにしました。あなたは、SHA-1で使用する場合HMACのセキュリティはまだ罰金であることを正しいだ
は、 HMAC-MD5はそれを信じるかどうかさえも安全です。
私は、一般的に、HMAC-SHA-256への移行をお勧めします。 は、ソフトウェアの解析を容易にするためです。
あなたが代わりにSHA512を使用してに見たいと思うかもしれませんため、64ビットプラットフォーム上で最適化します。
generate_password_hash
ハッシュが生成される方法をカスタマイズするmethod
引数を取ります。デフォルトはpbkdf2:sha1
です。 PBKDF2に異なる導出メソッドを渡します。
generate_password_hash(secret, method='pbkdf2:sha512')
また、低速のハッシュスピードのコストで、高い数値に1000年の低いデフォルトの反復回数を変更することができます。 pbkdf2:sha1:10000
。
ハッシュと繰り返しがうまく調整されていれば、PBKDF2であれば大丈夫でしょう。あるいは、Werkzeugよりも多くのハッシュメソッドをサポートするPasslibを使用してください。使用するハッシュについては、Passlibのrecommended hashesを参照してください。この例は、Passlibでbcryptを使用する方法を示しています。
pip install passlib bcrypt
from passlib.context import CryptContext
crypt_context = CryptContext(schemes=['bcrypt_sha256'])
crypt_context.hash(secret)