firebase - 使用 CLI firebase auth 导入用户帐户后我得到 INVALID_PASSWORD:使用 python 脚本导入
问题描述
我正在尝试使用 CLI 将具有固定参数的用户帐户设置到 Firebase 中,成功上传数据后,然后对其进行测试,我在日志中得到 INVALID_PASSWORD
我认为与盐和哈希有关,我是否错误地设置了这些值?
这里还有其他相关的 QA,
https://stackoverflow.com/a/40851390/2513972
但我尝试使用 python,所以请帮助我,我卡在这里。
from passlib.hash import pbkdf2_sha256
from passlib.utils import to_bytes, to_native_str
import base64
PASSWORD = 'aA123456*'
ROUND = 20000
SALT = to_bytes('google')
hash1 = pbkdf2_sha256.using(salt=SALT,rounds=ROUND).hash(PASSWORD)
print(pbkdf2_sha256.identify(hash1))
# True
print(pbkdf2_sha256.verify(PASSWORD,hash1))
# True
print(hash1)
# $pbkdf2-sha256$20000$Z29vZ2xl$PtFLyZHJJucUa2KBg1iJeVJsivis8JimRhFifRRKlFc
print(base64.b64encode(b'Z29vZ2xl'))
# b'WjI5dloyeGw='
print(base64.b64encode(b'PtFLyZHJJucUa2KBg1iJeVJsivis8JimRhFifRRKlFc'))
# b'UHRGTHlaSEpKdWNVYTJLQmcxaUplVkpzaXZpczhKaW1SaEZpZlJSS2xGYw=='
# firebase auth:import sandbox/account_file.csv --hash-algo=PBKDF2_SHA256 --rounds=20000 --project <project_name>
# account_file.csv
# 555000444,example@gmail.com,false,UHRGTHlaSEpKdWNVYTJLQmcxaUplVkpzaXZpczhKaW1SaEZpZlJSS2xGYw==,WjI5dloyeGw=,,,,,,,,,,,,,,,,,,,,,,
解决方案
密码已经有base64格式的值,不需要再用base64.b64encode方法解析。
# account_file.csv
# 555000444,example@gmail.com,false,PtFLyZHJJucUa2KBg1iJeVJsivis8JimRhFifRRKlFc,Z29vZ2xl,,,,,,,,,,,,,,,,,,,,,,
推荐阅读
- python - 尝试重置密码时的身份验证错误 - django
- javascript - FullCalendar:仅在当前视图的列表视图中显示事件
- python - 在python中搜索多个子字符串的列表?
- php - 从多对多表中选择所有数据的最有效方法是什么?
- javascript - 如何使用 ReactJs 将网络摄像头流式传输到移动浏览器?
- php - Wordpress:在每次页面刷新时显示三个随机帖子
- java - 如何以编程方式从现有的 lo4j2.xml 加载属性名称
- javascript - 更改 v-select 组件的图标颜色
- xml - JAXB:在生成 Java 类之前简化 xsd(选择一个元素)
- php - 刚刚创建了一个带有 html 和 css 的搜索栏,我如何为 php 搜索表单使用相同的样式?