Quick actions

cmd+k|ctrl+k

Navigation

Languages

Essential Go / hex, base64 encoding

Snippet info

Language

Go

Visibility

public

Author

kkowalczyk

Created

2019-03-26T10:02:06Z

Updated

2019-03-26T10:02:06Z

package main

import (
	"bytes"
	"encoding/hex"
	"fmt"
	"io/ioutil"
	"log"
)

func main() {
	d := []byte{0x01, 0xff, 0x3a, 0xcd}

	writer := &bytes.Buffer{}
	hexWriter := hex.NewEncoder(writer)

	_, err := hexWriter.Write(d)
	if err != nil {
		log.Fatalf("hexWriter.Write() failed with '%s'\n", err)
	}

	encoded := writer.Bytes()
	fmt.Printf("Hex: %s\n", string(encoded))

	reader := bytes.NewBuffer(encoded)
	hexReader := hex.NewDecoder(reader)

	decoded, err := ioutil.ReadAll(hexReader)
	if err != nil {
		fmt.Printf("ioutil.ReadAll() failed with '%s'\n", err)
	}

	if !bytes.Equal(d, decoded) {
		log.Fatalf("decoded version is different than original")
	}
}
INFO