美文网首页
go处理Md5-Sha1-Base64

go处理Md5-Sha1-Base64

作者: 呦丶耍脾气 | 来源:发表于2023-03-18 17:56 被阅读0次

1.生成Md5

package main
import (
    "crypto/md5"
    "fmt"
    "io"
)
func main() {
    str := "Hello Word"
    // 方法一
    sum := md5.Sum([]byte(str))
    // 转成16进制
    md51 := fmt.Sprintf("%x", sum)
    fmt.Println("方法一: " + md51)

    // 方法二
    hash := md5.New()
    // 将str写入到hash
    _, err := io.WriteString(hash, str)
    if err != nil {
        fmt.Println(err.Error())
    }
    // 转成16进制
    md52 := fmt.Sprintf("%x",hash.Sum(nil))
    fmt.Println("方法二: " + md52)
}

/** 输出
方法一: ed0a96e83ab7b0910fcbcc131b2e6b82
方法二: ed0a96e83ab7b0910fcbcc131b2e6b82
*/

2.生成Sha1

package main
import (
    "crypto/sha1"
    "fmt"
    "io"
)
func main() {
    str := "1234"
    // 方法一
    sum := sha1.Sum([]byte(str))
    // 转成16进制
    shaA := fmt.Sprintf("%x", sum)
    fmt.Println("方法一: " + shaA)

    // 方法二
    hash := sha1.New()
    _, err := io.WriteString(hash, str)
    if err != nil {
        fmt.Println(err.Error())
    }
    // 转成16进制
    shaB := fmt.Sprintf("%x",hash.Sum(nil))
    fmt.Println("方法二: " + shaB)
}
/** 输出
方法一: 7110eda4d09e062aa5e4a390b0a572ac0d2c0220
方法二: 7110eda4d09e062aa5e4a390b0a572ac0d2c0220
*/

3.Base64编码和解码

package main
import (
    "encoding/base64"
    "fmt"
)
func main() {
    str := "1234"
    // 方法一
    // Base64编码
    base64EncodeStr := base64.StdEncoding.EncodeToString([]byte(str))
    fmt.Printf("方法一,Base64编码: %v \n",base64EncodeStr)
    // Base64解码
    decodeString, err := base64.StdEncoding.DecodeString(base64EncodeStr)
    if err != nil {
        fmt.Println(err.Error())
    }
    fmt.Printf("方法一,Base64解码: %s \n",decodeString)

    // 方法二:使用兼容URL的base64编码和解码
    toString := base64.URLEncoding.EncodeToString([]byte(str))
    fmt.Printf("方法二,Base64编码: %v \n",toString)
    bytes, _ := base64.URLEncoding.DecodeString(toString)
    fmt.Printf("方法二,Base64解码: %s \n",bytes)
}

/**输出
方法一,Base64编码: MTIzNA== 
方法一,Base64解码: 1234 
方法二,Base64编码: MTIzNA== 
方法二,Base64解码: 1234 
*/

相关文章

  • 异常处理

    Go 的异常处理不同于其他语言使用的结构 对于 go 的异常处理, 使用 defer, panic, recove...

  • Go 语言基础——错误处理

    学习目标 掌握错误处理 掌握自定义错误处理 掌握defer关键字的使用 错误处理 GO没有异常处理机制 Go语言引...

  • go语言strings库总结

    最近由于用go做字符串处理,用到了go的strings库,借此对go strings库做个总结,将go strin...

  • 异常处理

    异常处理 Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go...

  • (译)Go 语言中异常处理的艺术

    原文链接:The Art of Error Handling in Go Go 语言的异常处理与其他语言截然不同,...

  • 2021-06-08

    Go的编程模式,错误处理 引入了其他语言的错误处理模式,最后,说明Go错误处理的好处。主要是将函数的入参、出参、错...

  • 基础-3

    异常处理 error接口:Go中的一个关于错误处理的标准模式,属于Go内建的接口类型;type error int...

  • go 异常处理

    error 是一个接口,接口中有Error()方法和返回值string // 就相当于 var tmp error...

  • Go异常处理

    想法 Go的异常处理是比较特别的.有人不喜欢这种走两步就 if err,然而生活就是这样. 这是我理解的实现方式之...

  • go 异常处理

    error 接口声明如下: 创建error err:=errors.New("")//返回的是其返回的error类...

网友评论

      本文标题:go处理Md5-Sha1-Base64

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