由于项目经历了多次迭代,协议也发生了多次变化,所以导致有些数据中是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)
}
}