Python如何验证 Beego的密码加密?

需要开发一个新项目,旧项目是beego, 现在需要新站登陆旧站数据库。 但是发现beego不是常规的md5加密方式,在线解密也试了很多,密码就是123456,但和一般加密算法都不一样。

bcrypt.GenerateFromPassword([]byte(mu.Password), bcrypt.DefaultCost)

后面发现了 beego的加密方式, 如何用python实现密码校验呢?

阅读 5.1k
1 个回答

这个就是默认的bcrypt加密

package main

import (
    "fmt"

    "golang.org/x/crypto/bcrypt"
)

func main() {
    password, _ := bcrypt.GenerateFromPassword([]byte("123456"), bcrypt.DefaultCost)
    fmt.Println(string(password))
}

这个对于同样的明文密码,每次生成的密码也是不一样的,比如我这里获得了加密密码为 $2a$10$cDoVtr1MUZHuw330Xt7KbuiYX660FOEFs2Cw.qQz5MDMINnEfmOpW, 带到python中验证如下。

使用pythonbcrypt

pip install bcrypt

python中比较

import bcrypt
print bcrypt.checkpw('123456', '$2a$10$cDoVtr1MUZHuw330Xt7KbuiYX660FOEFs2Cw.qQz5MDMINnEfmOpW')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题