0
点赞
收藏
分享

微信扫一扫

go客户之md5加密

数据库密码一般是加密存储的,这里使用md5进行加密,md5加密是一种不可逆的加密算法,不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。

用户登录时,前端传递原始密码,在后台把原始密码进行md5加密后和数据库进行比对,用户名和密码都相等时,返回用户信息。

func GetStringMd5(s string) string {
md5 := md5.New()
md5.Write([]byte(s))
md5Str := hex.EncodeToString(md5.Sum(nil))
return md5Str
}

GetStringMd5函数就是md5加密方法,使用的是标准库crypto/md5。

func Login(username string, password string) (user model.User, err error) {
err = Db.QueryRow("select id,username,realname from user where username = ? and password= ? ", username, GetStringMd5(password)).Scan(&user.Id, &user.Username, &user.Realname)
if err != nil {
logger.Log.Error(err)
}
return
}

根据用户名和md5加密的密码查询用户赋予User对象。这里面如果没有查询到也会正常返回,所以使用的时候需要先判断下user.username不等于""。

举报

相关推荐

0 条评论