var reader = bufio.NewReader(os.Stdin) // GetUserCredentials 获取用户输入的账号密码 func GetUserCredentials() (string, string) { var username, password string fmt.Print("请输入用户名:") userInput, _ := reader.ReadString('\n') username = strings.TrimSpace(userInput) fmt.Print("请输入密码:") passwordInput, _ := reader.ReadString('\n') password = strings.TrimSpace(passwordInput) return strings.TrimSpace(username), strings.TrimSpace(password) } // MD5Hash 对密码进行 MD5 加密 func MD5Hash(password string) string { hash := md5.Sum([]byte(password)) return hex.EncodeToString(hash[:]) } // UserLogin 处理用户登录 func UserLogin(username, password string) bool { // 假设存储的用户名和密码都已经进行了 MD5 加密 if username == "admin" && password == "21232f297a57a5a743894a0e4a801fc3" { return true } return false } func main() { username, password := GetUserCredentials() if UserLogin(username, password) { fmt.Println("登录成功") // 用户登录成功,继续执行其他逻辑 } else { fmt.Println("用户名或密码错误") // 用户登录失败,进行错误处理 } }
时间: 2024-04-09 19:31:01 浏览: 82
goSocket-master.zip_TCP/IP协议栈_GO_
这段代码是一个简单的用户登录功能,主要包括获取用户输入的账号密码、对密码进行MD5加密、以及处理用户登录的逻辑。
在`GetUserCredentials`函数中,通过`bufio.NewReader(os.Stdin)`创建一个读取器,然后使用`reader.ReadString('\n')`逐行读取用户输入的账号密码,并通过`strings.TrimSpace`去除输入中的空格和换行符,最后返回账号和密码。
在`MD5Hash`函数中,使用`md5.Sum`对密码进行MD5加密,然后使用`hex.EncodeToString`将加密后的结果转换为字符串,并返回。
在`UserLogin`函数中,假设用户名为"admin",密码为"21232f297a57a5a743894a0e4a801fc3",这里的密码已经经过MD5加密。函数会将输入的用户名和密码与预设的用户名和密码进行比较,如果匹配则返回`true`,否则返回`false`。
在`main`函数中,首先调用`GetUserCredentials`获取用户输入的账号密码,然后通过调用`UserLogin`函数进行登录验证。如果登录成功,则输出"登录成功",否则输出"用户名或密码错误"。
请注意,这段代码只是一个示例,并没有涉及真实的用户验证和安全性措施,请勿直接使用于实际产品中。
阅读全文