美文网首页
Go语言:MD5加密

Go语言:MD5加密

作者: Mdroid | 来源:发表于2017-08-28 00:26 被阅读0次

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

package main

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

func main() {
    data := []byte("Mdroid.cn")
    md5Ctx := md5.New()
    md5Ctx.Write(data)
    cipherStr := md5Ctx.Sum(nil)
    fmt.Println(cipherStr)
    fmt.Printf("%x\n", md5.Sum(data))
    fmt.Printf("%x\n", cipherStr)
    fmt.Println(hex.EncodeToString(cipherStr))
}

结果:

[24 55 47 68 190 11 229 212 65 82 130 95 125 93 53 9]
18372f44be0be5d44152825f7d5d3509
18372f44be0be5d44152825f7d5d3509
18372f44be0be5d44152825f7d5d3509

分析:

md5.New()初始化一个MD5对象,返回hash.Hash对象。函数原型为 func New() hash.Hash。其实该对象实现了hash.Hash的Sum接口。Sum()计算出MD5校验和。Sum()函数原型func Sum(data []byte) [Size]byte。
通过翻阅源码可以看到他并不是对data进行校验计算,而是对hash.Hash对象内部存储的内容进行校验和计算然后将其追加到data的后面形成一个新的byte切片。因此通常的使用方法就是将data置为nil。
该方法返回一个Size大小为16的byte数组,对于MD5来说就是一个128bit的16字节byte数组。

相关文章

  • Go语言:MD5加密

    Golang的加密库都放在crypto目录下,其中MD5库在crypto/md5包中,该包主要提供了New()和S...

  • golang中的hash函数

    go语言中提供了MD5、SHA-1等几种哈希函数,下面这个例子是使用MD5和SHA-1值来对内容加密: 输出结果为:

  • iOS常见信息加密方式总结

    目录 MD5加密HMAC加密base64加密对称加密RSA加密 - 非对称加密 一.MD5加密 MD5加密是最常用...

  • go使用md5

    在go中的系统加密包crypto/md5包中,提供了New()和Sum()函数来获取md5值。 导入 使用 32位...

  • iOS 数据加密

    iOS 常用加密方式算法包括MD5加密、AES加密、BASE64加密 MD5加密 MD5:全称是Message D...

  • crypto/md5

    Go标准库crypto包提供了加密解密、签名验签、HMAC、OpenSSL哈希等一整套封装。 MD5 MD5全称M...

  • iOS加密

    iOS代码常见的加密方式包括MD5加密、AES加密、BASE64加密,RSA加密。 MD5加密 MD5是不可逆的只...

  • Java加密

    MD5加密: RSA加密: CBC加密:

  • 项目开发踩坑分享

    1.大家熟悉的md5 加密是用c 语言写的,函数代码也比较简单,调用方便。那么md5的加密结果 分为16位和32位...

  • linux进行md5加密

    linux进行md5加密 openssl做MD5加密 md5加密 交互式输入 管道标准输入处理 对文件处理 md5...

网友评论

      本文标题:Go语言:MD5加密

      本文链接:https://www.haomeiwen.com/subject/dcxwdxtx.html