Go语言实现md4、md5、sha256哈希算法加密

本文介绍了哈希算法的主要特点:不可逆性、唯一性和防篡改,并列举了常见的哈希算法如MD4、MD5和SHA系列。在性能和内存消耗的比较中,MD5通常比MD4快但消耗更多资源,而SHA256是推荐的平衡选择。文章还提供了Go语言实现MD4、MD5和SHA256加密的代码示例。
摘要由CSDN通过智能技术生成

1. 哈希算法特点

不可逆:无法从一个哈希值恢复原始数据,哈希并不加密

唯一性:对于特定的数据 只能有一个哈希 并且这个哈希是唯一的

防篡改:改变输入数据中的一个字节 导致输出一个完全不同的哈希值

2. 常用的哈希算法

MD4、MD5、hash1、sha224、sha256、sha384、sha512

性能 : md4 > md5 > sha224 > sha256 > sha384 > sha512

内存消耗:md5 > md4 > sha512 > sha384 > sha256 = sha224

建议平常使用sha256即可,安全性可靠且消耗资源不高。

3. go实现MD加密

3.1 MD4

import (
	"encoding/hex"
	"golang.org/x/crypto/md4"
)

func GetMd4(str string) string {
	srcByte := []byte(str)
	md4New := md4.New()
	md4Bytes := md4New.Sum(srcByte)
	md4String := hex.EncodeToString(md4Bytes)
	return md4String
}

3.2 MD5

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

func GetMd5(str string) string {
	srcByte := []byte(str)
	md5New := md5.New()
	md5Bytes := md5New.Sum(srcByte)
	md5String := hex.EncodeToString(md5Bytes)
	return md5String
}

3. go实现SHA加密

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

func GetSha256(str string) string {
	srcByte := []byte(str)
	sha256New := sha256.New()
	sha256Bytes := sha256New.Sum(srcByte)
	sha256String := hex.EncodeToString(sha256Bytes)
	return sha256String
}

最后

小生凡一,期待你的关注。
在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小生凡一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值