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

目录

    • 1. 哈希算法特点
    • 2. 常用的哈希算法
    • 3. go实现MD加密
      • 3.1 MD4
      • 3.2 MD5
    • 3. go实现SHA加密
    • 最后

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
}

最后

小生凡一,期待你的关注。
Go语言实现md4、md5、sha256哈希算法加密_第1张图片

你可能感兴趣的:(遇见Golang,拥抱未来,哈希,md5,密码学,go,sha256)