非常简单的判断一个字符串是否base64编码的方法,就是使用正则+base64自身的解码+转码来判断,如果失败则一定不是base64编码,否则是base64编码:
// 使用正则+自身的解码转码来判断字符串是否是base64,可以判断一定不是。
func JudgeBase64(str string) bool {// 先试用正则来判断pattern := "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$"matched, err := regexp.MatchString(pattern, str)if err != nil {return false}if !(len(str)%4 == 0 && matched) {return false}// 在使用自身带的解码和转码 在查看他么的值是否相等,如果相等说明是base64 否则不是deStr, err := base64.StdEncoding.DecodeString(str)if err != nil {return false}bs64Str := base64.StdEncoding.EncodeToString(deStr)//如果解码后再转码和原来的字符一样说明是base64return str == bs64Str
}