GolangNote

Golang笔记

GoLang实现base64加密/解密

Permalink

base64 是常用的、简单的字符串加密方式,下面是GoLang 实现base64 加密/解密

GoLang实现base64加密/解密

Go: base64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package main

import (
    "encoding/base64"
    "fmt"
)

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))
    fmt.Println(string(debyte))

    // 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))
}

运行输出:

plaintext: 输出
1
2
ATLkBT8Fs49qBTZ=
hello world

Go: base64
1
2
3
4
5
6
7
8
9
msg := "Hello, 世界"
encoded := base64.StdEncoding.EncodeToString([]byte(msg))
fmt.Println(encoded)
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil {
    fmt.Println("decode error:", err)
    return
}
fmt.Println(string(decoded))

plaintext: 输出
1
2
SGVsbG8sIOS4lueVjA==
Hello, 世界

本文网址: https://golangnote.com/topic/36.html 转摘请注明来源

Related articles

Golang phantomjs 动态代理实现

phantomjs 是个很优秀的软件,虽然现在被chrome headless 抢了风头,但在某些特定场合,使用phantomjs 还是很方便,这里是介绍使用Go 实现动态代理。...

Golang 实现 10 进制转 N 进制

给定一个不没有重复字符的字符串,如 `[0-9,a-z]`,把一个 10 进制数字转为,该字符集的字符串。应用场合如汽车牌、顺序计数。...

Golang实现简单的Socks5代理

Socks5 代理较 `http/https` 代理有较好的性能,下面是借鉴某个著名开源软件的 local 实现的简单代理。...

Write a Comment to "GoLang实现base64加密/解密"

Submit Comment Login
Based on Golang + fastHTTP + sdb | go1.22.3 Processed in 0ms