firebase / firebase/firebase-admin-python

Alternative to the 120k limit on rounds for hashed password imports using auth.UserImportHash.pbkdf2_sha256

Abierto
#512 8 comentarios 7 reacciones 1 asignado Reclamado por @bojeil-google Ver en GitHub
api: auth
Lenguaje dominante
Python
Estrellas
1.2k
Forks
359
Merge medio
5 d 6 min
PR fusionados (30 d)
2

Descripción

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)
```

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.