package crypto import ( "crypto/sha512" "encoding/hex" "io" "mime/multipart" ) func CalculateHashFromRequest(fileHeader *multipart.FileHeader) (string, error) { src, err := fileHeader.Open() if err != nil { return "", err } defer src.Close() h := sha512.New() if _, err := io.Copy(h, src); err != nil { return "", err } // return the sha checksum in hex return hex.EncodeToString(h.Sum(nil)), nil // alternatively return in base64 //return base64.StdEncoding.EncodeToString(h.Sum(nil)), nil }