package main import ( "crypto/aes" "crypto/cipher" "crypto/md5" "crypto/rand" "fmt" "io" ) func checkErr(err error) { if err != nil { panic(err.Error()) } } func keyMkr(passwd string) []byte { key := md5.New() key.Write([]byte(passwd)) return key.Sum(nil) } func encrypt(data []byte, key []byte) []byte { block, err := aes.NewCipher(key) checkErr(err) gcm, err := cipher.NewGCM(block) checkErr(err) nonce := make([]byte, gcm.NonceSize()) _ , err= io.ReadFull(rand.Reader, nonce) checkErr(err) sealed := gcm.Seal(nonce, nonce, data, nil) return sealed } func main() { var passwd string = "ThisAPassphrase" fmt.Println(passwd) key := keyMkr(passwd) fmt.Println(key) data := []byte("Thi is some data") dataSealed := encrypt(data,key) fmt.Println(string(data)) fmt.Println(string(dataSealed)) }