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

分类: 计算机技术
推荐阅读:
Python使用集合实现内容去重 有这么一个场景,某个文件用于记录人名(也可以是URL或者其他的),编辑发现,出现了重复的内容。那么我们如何使用Python来进行去重呢?
PySide6 按钮(QPushButton) QPushButton 是 Qt 框架中表示可点击按钮部件的类。在 PySide6 中,你可以使用 QPushButton 类来创建和与图形用户界面(GUI)应用程序中的按钮交互。
Python实现节点 在某些情况下,无法在连续的内存块中为数据分配内存。 因此,我们在数据元素中记录下一个数据的内存地址;此类结构称为指针。 但是在Python中,我们将它们称为节点。
PySide6 事件的传播机制 在PySide6中,界面上的按钮(QPushButton)和QWidget部件都可以定义keyPressEvent来处理键盘按键事件。当按键事件发生时,系统会根据事件的传播机制来确定哪个部件的keyPressEvent方法将被执行。
C语言获取当前系统的CPU核心数量 本文将介绍C语言在Windows系统和Linux系统下获取CPU核心数量的方法;
Visual Studio Code 配置Python开发环境 首先,请确保你的电脑已经安装了Python,如没有请先安装,建议 3.5.0以上版本;其次,确保你的电脑已经安装了 Visual Studio Code 这个代码编辑器;