- 
                Notifications
    You must be signed in to change notification settings 
- Fork 344
Open
Labels
Description
I'm looking to migrate users from Django to firebase, below is the code I'm using for testing. The issue I'm facing is that it seems that the passwords have been hashed using 150k rounds when the firebase docs says the maximum is 120k for SHA256: https://firebase.google.com/docs/auth/admin/import-users#python
Is there an alternative?
Here is the error I get:
ValueError: rounds must not be larger than 120000.
import firebase_admin
from firebase_admin import auth, exceptions
from passlib.utils import to_bytes
server_path = ''
fb_credentials = firebase_admin.credentials.Certificate(server_path + 'files/serviceAccount.json')
firebase_admin.initialize_app(fb_credentials)
old_hash = 'pbkdf2_sha256$150000$rsWX3Dbbd3K6$EYgXPBAz/Ero9PIgIFs/8pWGmGT+diTOQs1DZv4Ytjw='
email = 'user@gmail.com'
rounds = int(old_hash.split('$')[1])
salt = old_hash.split('$')[2]
users = [
    auth.ImportUserRecord(
        uid='70sSUptkmkN95QTFJ0gWduzdlpP1',
        email=email,
        password_hash=to_bytes(old_hash),
        password_salt=to_bytes(salt)
    ),
]
hash_alg = auth.UserImportHash.pbkdf2_sha256(rounds=rounds)
try:
    result = auth.import_users(users, hash_alg=hash_alg)
    for err in result.errors:
        print('Failed to import user:', err.reason)
except exceptions.FirebaseError as error:
    print('Error importing users:', error)
RomikimoR, 0xDeeep, alexmojaki and ramsribdarekfrynas, 0xDeeep and ramsrib