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