본문 바로가기
golang

[golang] H4sIAAAAA???

by devjh 2022. 9. 19.
반응형

얼마전 아래와 같은 문자열을 만난적이 있습니다.(저의 경우는 aws rds관련 로그를 파싱하는 과정에서 만났습니다)

H4sIAAAAAAAAAJVVbW/bNhD+K4T7oQngOHx/cZegxualARqnS7wB~~~

해당 문자열은 얼핏보면 base64로 인코딩 된것 같지만 아닙니다.

 

H4slA로 시작하는 문자열은 base64로 인코딩된 gzip 문자열 입니다.


base64로 디코딩 해준 후, gzip파일을 읽어온 것처럼 해석해야 합니다.

 

1.  소스코드

func main() {
   data := "H4sIAAAAAAAAAJAA\n"
   decodeString, _ := base64.StdEncoding.DecodeString(data)
   r, err := gzip.NewReader(bytes.NewReader(decodeString))
   if err != nil {
      log.Fatal(err)
      return
   }
   s, _ := ioutil.ReadAll(r)
   fmt.Println(string(s))
}

 

반응형

댓글