firebase / firebase/firebase-admin-python
Alternative to the 120k limit on rounds for hashed password imports using auth.UserImportHash.pbkdf2_sha256
- 主要語言
- Python
- 星號
- 1.2k
- 分支
- 359
- 平均合併
- 5 天 6 分鐘
- 30 天內合併 PR
- 2
描述
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)
```
貢獻指南
評估
這個 Issue 還沒有評估資料。