firebase / firebase/firebase-admin-python
Alternative to the 120k limit on rounds for hashed password imports using auth.UserImportHash.pbkdf2_sha256
- Lingua principale
- Python
- Stelle
- 1.2k
- Fork
- 359
- Merge medio
- 5g 6m
- PR unite (30g)
- 2
Descrizione
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)
```
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.