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
}
最后
小生凡一,期待你的关注。