Golang实现字符串的MD5加密

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

本文将使用golang自带的crypto/md5库实现MD5的字符串加密;

导入必要库:

import (
	"crypto/md5"
	"encoding/hex"
)

crypto/md5是自带的MD5函数库;而encoding/hex是一个将 byte切片转换成字符串的编码工具库。

实现:

func MD5(v string)string{
	d := []byte(v)
	m := md5.New()
	m.Write(d)
	return hex.EncodeToString(m.Sum(nil))
}

md5.New()返回一个hash.Hash对象;hash.Hash对象定义了一个Sum接口,其原型为:

func Sum(data []byte) [Size]byte

Sum()对hash.Hash对象内部存储的内容进行校验计算,然后将其追加到data的后面形成一个新的byte切片,所以一般需要将data设为nil。

hash.Hash对象的Write接口只接受 byte切片数据类型;

完整代码如下:

package main

import (
	"crypto/md5"
	"encoding/hex"

	"fmt"
)

func MD5(v string)string{
	d := []byte(v)
	m := md5.New()
	m.Write(d)
	return hex.EncodeToString(m.Sum(nil))
}

func main(){
	fmt.Println(MD5("123456"))
}

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/golang-md5.html

分类: 计算机技术
推荐阅读:
Rust line宏的用法和示例 在Rust中,line宏用于获取代码中当前的行号;通过在代码中使用line宏,开发者可以轻松地在编译时获取到所在位置地行号信息,从而实现更灵活地代码逻辑和调试方案。
Linux系统删除目录下的所有空目录 在Linux系统下,你如果想删除某个目录下所有的空目录,那你可以通过这一条命令实现:
让Linux终端像电影里一样下起数字雨 在Linux系统里,如果你想要实现电影里的数字雨,一条命令即可:
Python hash()函数 在 Python 中,hash() 函数用于获取给定对象的哈希值(散列值),即对象的唯一标识符。
一定有你不知道的Python技巧 Python一直以代码简洁著称;想写出艺术般的代码,需要你掌握各种Python技巧,这些技巧有些是语言特性,有些则是广大程序员的经验心得;今天作者就给大家网罗了一些Python技巧,一起来看看吧。
Python将任意维度的不规则列表展平成一维列表 本文使用Python将任意维度的不规则列表展平成一维列表;