Different Types of String Encoding Using Golang
snippets and notes on various string encodings in Golang
Base32 Standard Encoding To String with No Padding
This will yield a 26 character length encoded string with no padding using base32 encoding.
b := make([]byte, 16)
_, err := rand.Read(b)
if err != nil {
log.Fatalln(err)
}
str := base32.StdEncoding.WithPadding(base64.NoPadding).EncodeToString(b)
fmt.Println(str[:])
//sha256 hash
hash := sha256.Sum256([]byte(str))
// store in database as hash[:]
Base64 Standard Encoding To String With No Padding
Yields a 22 character long string encoding with no padding:
b := make([]byte, 16)
_, err := rand.Read(b)
if err != nil {
log.Fatalln(err)
}
str := base64.StdEncoding.WithPadding(base64.NoPadding).EncodeToString(b)
// hash
hash := sha256.Sum256([]byte(str))
// store in database as hash[:]