bcryptのメカニズムは次のとおりです。
>>> myhash = bcrypt.hashpw('testpassword', bcrypt.gensalt(12))
>>> myhash
'$2a$12$K1hnCm5z74QtXaynv4.S8.i1FK9xjRr7JSPCRCyB9zpv8xZznZGFi'
>>> bcrypt.hashpw('testpassword', myhash)
'$2a$12$K1hnCm5z74QtXaynv4.S8.i1FK9xjRr7JSPCRCyB9zpv8xZznZGFi'
認証に使いたいです。問題は、クライアントから作成したいので、クライアントにソルト部分が必要なことです。
gensalt(username)
ユーザー名からソルトを生成する独自のソルトを使用する場合、クライアントが他のユーザーとは異なる同じソルトを常に使用するのは良いことだと思いました。
それはbcryptと私のプロジェクトの良い近似ですか、それともbcryptメカニズムのセキュリティを破っていますか?
誰かがパスワードを復号化したい場合、ユーザーごとに1つ使用する必要があるため、レインボーテーブルを使用することはできないと思います。私はセキュリティの問題について十分な経験がなく、それが良いかどうかを知ることができません。たぶん、hashpw
PCでブルートフォースを行うのに十分な速さです。