You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

能否在SQLite数据库浏览器查看密码?Flask站点密码找回问询

关于Flask Wiki站点遗忘密码后的处理办法

嘿,咱们先把核心点说清楚:你数据库里存的那个pbkdf2:sha256:50000$trQqtDeG$fb666b434b1920c814101fd3afedf75c9e21e2eebbfe7e6aa9fe4aec3d69b1e3单向哈希值,这种加密方式的核心就是不可逆——也就是说,你绝对没法从这个字符串还原出原密码poop。这其实是刻意的安全设计,就是为了防止数据库泄露后,用户的原密码被轻易窃取。

那遗忘密码后该怎么解决?分两种场景给你说:

如果你是站点开发者

  • 直接更新数据库的哈希值(快速解决)
    用Flask自带的密码哈希工具生成新密码的哈希,替换数据库里对应用户的密码字段就行,步骤大概是这样:

    1. 打开Flask的shell环境:flask shell
    2. 导入哈希生成函数:from werkzeug.security import generate_password_hash
    3. 生成新密码的哈希:new_hash = generate_password_hash('你的新密码')
    4. 找到你的用户记录(假设用SQLAlchemy ORM):user = User.query.filter_by(username='你的用户名').first()
    5. 更新并提交:user.password = new_hash,然后执行db.session.commit()
  • 添加密码重置功能(长期解决方案)
    要是不想以后再碰到这种麻烦,最好给站点加上邮箱/手机号验证的密码重置流程——用户输入注册邮箱,系统发送重置链接,点击后就能设置新密码,这是正规站点的标准安全操作。

如果你是普通用户(不过你能直接看数据库,大概率是开发者啦)

如果站点本身已经有密码重置入口,直接点进去走流程就行:输入注册时留的邮箱或手机号,接收重置链接后设置新密码就搞定了。

最后再强调一遍:单向哈希的设计就是让原密码无法被还原,所以遗忘密码后只能通过重置的方式设置新密码,这也是保障你账号安全的必要机制。

内容的提问来源于stack exchange,提问作者Shekambo jan

火山引擎 最新活动