Golang判断当前字符串是hex编码还是base64编码

路过麦田 · · 2743 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

由于项目经历了多次迭代,协议也发生了多次变化,所以导致有些数据中是hex编码,有的是base64编码,所以需要区分开来,写了一个苟且的方法来区分


func DecodeHexOrBase64(content string) ([]byte, error) {
    dat := []byte(content)
    isHex := true
    for _, v := range dat {
        if v >= 48 && v <= 57 || v >= 65 && v <= 70 || v >= 97 && v <= 102 {
            // isHex = true
        } else {
            isHex = false
            break
        }
    }
    if isHex {
        d, err := hex.DecodeString(content)
        if len(d) == 0 || err != nil {
            return base64.StdEncoding.DecodeString(content)
        } 
        return d, err
    } else {
        return base64.StdEncoding.DecodeString(content)
    }
}


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:路过麦田

查看原文:Golang判断当前字符串是hex编码还是base64编码

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2743 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传