base64 golang 图片_golang基础学习-base64使用

在近期的项目开发中对图片进行base64编码,简单使用了golang的base64包。

1.使用方法

1.1 引入包

import "encoding/base64"

1.2 base64使用

这里所有的例子都是官网上的范例;

code:

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

Output:

SGVsbG8sIOS4lueVjA==

Hello, 世界

2. 包详解

2.1包详解

上面途中的Constants:

const (

StdPadding rune = '=' // Standard padding character

NoPadding rune = -1 // No padding

)

上面途中的Variables:

var RawStdEncoding = StdEncoding.WithPadding(NoPadding)

var RawURLEncoding = URLEncoding.WithPadding(NoPadding)

var StdEncoding = NewEncoding(encodeStd) 案例中使用的是该变量

var URLEncoding = NewEncoding(encodeURL)

以2.2节案例中详解:

base64加密:

base64.StdEncoding 如上面变量所解释,接收了“NewEncoding(encodeStd)”返回的结果“*Encoding”;

根据返回结果 再执行EncodeToString(str []byte) string 这个方法;

在源码中,EncodeToString 其实执行中的方法Encode(dst, src []byte),把结果string了一下。 当然秉着我省事的原则,我一直比较习惯用EncodeToString

打印“encoded := base64.StdEncoding.EncodeToString([]byte(msg))”后生成:

SGVsbG8sIOS4lueVjA==

2ba1c07225f23db32b7f176ce3af9501.png

base64解码:

案例中,对于解码对结果对于加密后的字符串运行:

decoded, err := base64.StdEncoding.DecodeString(encoded)

实际中DecodeString 实际是对的封装func (enc *Encoding) Decode(dst, src []byte) (n int, err error),如图可见:

76a3eba8b00fe0fdf59e7371b7479927.png

ps:本文只是简单的使用base64包中一些函数。欢迎大家补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值