Golang学习笔记之MD5

栏目: Go · 发布时间: 7年前

内容简介:什么是单向加密算法。简而言之就是不可解密的加密方法,也叫作非可逆加密, 用这种方法加密过的东西,地球上现有的人类在有限的时间内是无法解密的,包括加密者自己。主要有:BASE64、MD5、SHA、HMAC,其中最为常见的就有MD5,BASE64。这里我们主要介绍最常使用的MD5算法。该算法可以用来得到一个128bit的值,既可以作为K-V中的key,也可以对密码进行加密从而确保其在传输中"不可见"。

1.单向加密

什么是单向加密算法。简而言之就是不可解密的加密方法,也叫作非可逆加密, 用这种方法加密过的东西,地球上现有的人类在有限的时间内是无法解密的,包括加密者自己。

2.常用的单向加密算法有哪些呢?

主要有:BASE64、MD5、SHA、HMAC,其中最为常见的就有MD5,BASE64。这里我们主要介绍最常使用的MD5算法。该算法可以用来得到一个128bit的值,既可以作为K-V中的key,也可以对密码进行加密从而确保其在传输中"不可见"。

3.Golang的加密库都放在crypto目录下,其中MD5库在crypto/md5包中,该包主要提供了New和Sum函数。

函数原型:

func Sum(data []byte) [Size]byte

返回数据data的MD5校验和。

初始化一个MD5对象.Sum 函数是对hash.Hash对象内部存储的内容进行校验和计算然后将其追加到data的后面形成一个新的byte切片。因此通常的使用方法就是将data置为nil。

该方法返回一个Size大小的byte数组,对于MD5来说就是一个128bit的16字节byte数组。

func New() hash.Hash
返回一个新的使用MD5校验的hash.Hash接口。初始化一个MD5对象.

func main() {
    h := md5.New()
    h.Write([]byte("123456")) // 需要加密的字符串为 123456
    cipherStr := h.Sum(nil)
    fmt.Println(cipherStr)
    fmt.Printf("%s\n", hex.EncodeToString(cipherStr)) // e10adc3949ba59abbe56e057f20f883e
}

Base64编码

const (
    base64Table = "123QRSTUabcdVWXYZHijKLAWDCABDstEFGuvwxyzGHIJklmnopqr234560178912"
)
var coder = base64.NewEncoding(base64Table)
func base64Encode(src []byte) []byte {
    return []byte(coder.EncodeToString(src))
}
func base64Decode(src []byte) ([]byte, error) {
    return coder.DecodeString(string(src))
}
func main() {
    // encode
    hello := "hello world"
    debyte := base64Encode([]byte(hello))
    // decode
    enbyte, err := base64Decode(debyte)
    if err != nil {
        fmt.Println(err.Error())
    }
    if hello != string(enbyte) {
        fmt.Println("hello is not equal to enbyte")
    }
    fmt.Println(string(enbyte))
}

以上所述就是小编给大家介绍的《Golang学习笔记之MD5》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

口碑

口碑

[美] David Meerman Scott / 高游、郭成钢、薛松 / 人民邮电出版社 / 2010-10 / 25.00

Web 2.0时代,怎样让你的产品或创意风靡一时,为百万大众喜闻乐道?本书将为你揭开其中的奥秘。作者将理论创新与实务操作相结合,总结出了利用Web 2.0营销手段制造网络狂欢效应的六条金科玉律,并介绍了一个个生动鲜活的成功范例,如:哈利?波特魔法公园如何策划一场小型活动,达到引爆网络热潮的效果;贝克?霍尔克拉夫特如何通过网络发布音乐作品,从默默无闻成长为全球炙手可热的明星;看似平淡无奇的电子书,如......一起来看看 《口碑》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具