grafana-更改登陆密码

一、问题

grafana里忘记密码该怎么处理

二、解决方法

1.直接改数据库

find / -name "grafana.db"
# 进入到指定的目录
# 登陆数据库
sqlite3 grafana.db
# 查看表名
.tables
# 更改密码
update user set password = '7e8b589037feaaff7a7eac549656f3090bd1e30272816798fe74818c0cd8732c89fb8eaaa956ff6bb5f04e1afd7aae6c9fb9' where login = 'admin';

2.基于命令修改

# 1.修改密码为admin123
grafana-cli admin reset-admin-password admin123

# 2.重启服务
systemctl restart grafana-server

三、特殊情况

1.现象

# 有时步骤一的更改并不能生效,可以改成如下更改
update user set password = '7e8b589037feaaff7a7eac549656f3090bd1e30272816798fe74818c0cd8732c89fb8eaaa956ff6bb5f04e1afd7aae6c9fb9', salt = 'YZ2PEee4in' where login = 'admin';

2.解释

2.1 grafana加密方式
https://github.com/grafana/grafana/blob/3a7fc80948e630c0f88edccba54d66acacf6d724/pkg/login/grafana_login.go
https://github.com/grafana/grafana/blob/23956557d8c6a119b7de5be5c42024e29634d002/pkg/util/encoding.go

// EncodePassword encodes a password using PBKDF2.
func EncodePassword(password string, salt string) (string, error) {
	newPasswd := pbkdf2.Key([]byte(password), []byte(salt), 10000, 50, sha256.New)
	return hex.EncodeToString(newPasswd), nil
}

2.2 salt定义
salt的定义可以从下面这篇文章看出
https://blog.csdn.net/softuse/article/details/76619613

我的理解,salt的意思就是在原有密码的某些位置加入了一段字符串,然后对这个结果进行加密操作,这样别人即使反向解密了也不会拿到你真实的密码

所以当salt不同的时候,你即使password的数值是对的,加密后的最终结果也是不对的,这个就是为什么要改salt的原因

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值