当前位置:首页 > 科技  > 软件

Go语言实现Base64、Base58编码与解码,很简单

来源: 责编: 时间:2024-07-11 17:34:55 636观看
导读在Go语言中,实现Base64和Base58编码与解码是非常常见的任务。Go标准库中已经包含了Base64的编码与解码函数,而Base58需要使用第三方库来实现。下面分别介绍Base64和Base58编码与解码的实现方法。Base64 编码与解码Go标

在Go语言中,实现Base64和Base58编码与解码是非常常见的任务。Go标准库中已经包含了Base64的编码与解码函数,而Base58需要使用第三方库来实现。uBJ28资讯网——每日最新资讯28at.com

下面分别介绍Base64和Base58编码与解码的实现方法。uBJ28资讯网——每日最新资讯28at.com

Base64 编码与解码

Go标准库的encoding/base64包提供了Base64编码与解码的功能。uBJ28资讯网——每日最新资讯28at.com

示例代码

package mainimport (    "encoding/base64"    "fmt")// Base64Encode encodes a string to Base64func Base64Encode(input string) string {    return base64.StdEncoding.EncodeToString([]byte(input))}// Base64Decode decodes a Base64 encoded stringfunc Base64Decode(input string) (string, error) {    decoded, err := base64.StdEncoding.DecodeString(input)    if err != nil {        return "", err    }    return string(decoded), nil}func main() {    original := "Hello, World!"    fmt.Println("Original:", original)    encoded := Base64Encode(original)    fmt.Println("Encoded:", encoded)    decoded, err := Base64Decode(encoded)    if err != nil {        fmt.Println("Error decoding:", err)        return    }    fmt.Println("Decoded:", decoded)}

Base58 编码与解码

Base58常用于比特币等加密货币的地址编码。Go语言中,可以使用第三方库github.com/btcsuite/btcutil/base58来实现Base58编码与解码。uBJ28资讯网——每日最新资讯28at.com

示例代码

首先,安装btcsuite/btcutil包:uBJ28资讯网——每日最新资讯28at.com

go get github.com/btcsuite/btcutil/base58

然后,实现Base58编码与解码:uBJ28资讯网——每日最新资讯28at.com

package mainimport (    "fmt"    "github.com/btcsuite/btcutil/base58")// Base58Encode encodes a string to Base58func Base58Encode(input string) string {    return base58.Encode([]byte(input))}// Base58Decode decodes a Base58 encoded stringfunc Base58Decode(input string) (string, error) {    decoded := base58.Decode(input)    return string(decoded), nil}func main() {    original := "Hello, World!"    fmt.Println("Original:", original)    encoded := Base58Encode(original)    fmt.Println("Encoded:", encoded)    decoded, err := Base58Decode(encoded)    if err != nil {        fmt.Println("Error decoding:", err)        return    }    fmt.Println("Decoded:", decoded)}

代码分析

Base64

1 编码:uBJ28资讯网——每日最新资讯28at.com

func Base64Encode(input string) string {    return base64.StdEncoding.EncodeToString([]byte(input))}

将字符串转换为字节数组,然后使用EncodeToString方法进行Base64编码。uBJ28资讯网——每日最新资讯28at.com

2 解码:uBJ28资讯网——每日最新资讯28at.com

func Base64Decode(input string) (string, error) {    decoded, err := base64.StdEncoding.DecodeString(input)    if err != nil {        return "", err    }    return string(decoded), nil}

使用DecodeString方法进行Base64解码,并将结果转换为字符串。如果解码过程中出现错误,返回错误信息。uBJ28资讯网——每日最新资讯28at.com

Base58

1 编码:uBJ28资讯网——每日最新资讯28at.com

func Base58Encode(input string) string {    return base58.Encode([]byte(input))}

将字符串转换为字节数组,然后使用base58.Encode方法进行Base58编码。uBJ28资讯网——每日最新资讯28at.com

2 解码:uBJ28资讯网——每日最新资讯28at.com

func Base58Decode(input string) (string, error) {    decoded := base58.Decode(input)    return string(decoded), nil}

使用base58.Decode方法进行Base58解码,并将结果转换为字符串。uBJ28资讯网——每日最新资讯28at.com

总结

上述代码展示了如何在Go语言中实现Base64和Base58的编码与解码。Base64使用了Go标准库,而Base58则使用了btcsuite/btcutil第三方库。通过这些代码,可以轻松实现对字符串的Base64和Base58编码与解码操作。uBJ28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-100470-0.htmlGo语言实现Base64、Base58编码与解码,很简单

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: VueConf,尤雨溪公布 Vue3.5 新特性以及无虚拟DOM版本

下一篇: PHP安全测试秘密武器 PHPGGC

标签:
  • 热门焦点
  • 鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    华为全新的HarmonyOS 4.0操作系统将于今天下午正式登场,官方在发布会之前也已经正式给出了可升级的机型产品,这意味着这些机型会率先支持升级享用。这次的HarmonyOS 4.0支持
  • 6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    2023年上半年已经正式过去了,我们也迎来了安兔兔V10版本,在新的骁龙8Gen3和天玑9300发布之前,性能榜的榜单大体会以骁龙8Gen2和天玑9200+为主,至于那颗3.36GHz的骁龙8Gen2领先
  • 不容错过的MSBuild技巧,必备用法详解和实践指南

    不容错过的MSBuild技巧,必备用法详解和实践指南

    一、MSBuild简介MSBuild是一种基于XML的构建引擎,用于在.NET Framework和.NET Core应用程序中自动化构建过程。它是Visual Studio的构建引擎,可在命令行或其他构建工具中使用
  • 破圈是B站头上的紧箍咒

    破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    Tech星球(微信ID:tech618)文 | 陈桥辉 Tech星球独家获悉,拼多多在其APP内上线了“本地生活”入口,位置较深,位于首页的“充值中心”内,目前主要售卖美食相关的
  • 网红炒股不为了赚钱,那就是耍流氓!

    网红炒股不为了赚钱,那就是耍流氓!

    来源:首席商业评论6月26日高调宣布入市,网络名嘴大v胡锡进居然进军了股市。在一次财经媒体峰会上,几个财经圈媒体大佬就“胡锡进炒股是否知道认真报道”展开讨论。有
  • AI芯片初创公司Tenstorrent获三星和现代1亿美元投资

    AI芯片初创公司Tenstorrent获三星和现代1亿美元投资

    Tenstorrent是一家由芯片行业资深人士Jim Keller领导的加拿大初创公司,专注于开发人工智能芯片,该公司周三表示,已经从现代汽车集团和三星投资基金等
  • Android 14发布:首批适配机型公布

    Android 14发布:首批适配机型公布

    5月11日消息,谷歌在今天凌晨举行了I/O大会,本次发布会谷歌带来了自家的AI语言模型PaLM 2、谷歌Pixel Fold折叠屏、谷歌Pixel 7a手机,同时发布了Androi
  • 英特尔Xe-HP项目终止,将专注Xe-HPC/HPG系列显卡

    英特尔Xe-HP项目终止,将专注Xe-HPC/HPG系列显卡

    据10 月 31 日消息报道,英特尔高级副总裁兼加速计算系统和图形事业部总经理 表示,Xe-HP“ Arctic Sound” 系列服务器 GPU 已经应用于 oneAPI devcloud 云服
Top