Go Lang之md5加密方式

/*
 * Go Lang中MD5加密方法: 密码 + 盐(一串随机数)再Hash的方式
*/
package main

import (
	"crypto/md5"
	"fmt"
	"io"
)

// 定义常量,加密密码的盐
const salt = "slo3!458@#134@"

func main() {
	passwd := "admin"
	hash_md5_fun1(passwd)
	hash_md5_fun2(passwd)
}

// 方法一 密码 + 盐
func hash_md5_fun1(pwd string) string {
	data := []byte(pwd + salt)        // 字符串转byte
	has := md5.Sum(data)              // 对byte数据加密
	md5str1 := fmt.Sprintf("%x", has) // 将[]byte转成16进制
	fmt.Println(md5str1)
	return md5str1
}

// 方法二 密码 + 盐
func hash_md5_fun2(pwd string) string {
	w := md5.New()              // 初始化一个MD5对象
	io.WriteString(w, pwd+salt) // 将str写入到w中
	md5str2 := fmt.Sprintf("%x", w.Sum(nil))
	fmt.Println(md5str2)
	return md5str2
}

 

posted @ 2024-10-06 00:28  沉雪's  阅读(60)  评论(0编辑  收藏  举报