Python 在 Sonarqube 中插入用户时密码不起作用

Password not working when inserting users in Sonarqube in Python

user_password = 'admin'
salt = bcrypt.gensalt(rounds=16)
    password = bcrypt.hashpw(user_password.encode('utf-8'), salt)
    print(password)
    sql_statementInsert = "INSERT into users 
(crypted_password,login,uuid,external_login,external_identity_provider,external_id,is_root,onboarded,hash_method,active,name) 
values ('{}','cosmin','1ea2ad82-b07c-11ea-b3de-0242ac130004','cosmin','sonarqube','user',false,true,'BCRYPT',true,'cosmin') on conflict (login) do nothing;".format(password.decode("utf-8"))

此示例生成的哈希值是:$2b$08$1KDDzD5DoVOEopOWUb0Rbu8A0FtYtI02BopFoY4Qxp5URuf3KA0s2。 我有这段代码根据 user_password 生成一些散列,但是当尝试使用 "admin" 值登录时不起作用。但是当我直接在 crypted_password 中插入以下哈希时,它正在工作: $2a$12$uCkkXmhW5ThVK8mpBvnXOOJRLd64LJeHTeCkSuB3lfaR2N0AYBaSi

通过使用好的库解决了这个问题,我需要 py-bcrypt,错误的是 bcrypt。此外,如果您使用新库,则在插入时无需解码密码。