Go: Hash checksums
String
To compute the checksum of a string or byte slice, use the Sum function from a crypto package such as crypto/md5, crypto/sha1, or crypto/sha256:
s := "Foo"
md5 := md5.Sum([]byte(s))
sha1 := sha1.Sum([]byte(s))
sha256 := sha256.Sum256([]byte(s))
fmt.Printf("%x\n", md5)
fmt.Printf("%x\n", sha1)
fmt.Printf("%x\n", sha256)
1356c67d7ad1638d816bfb822dd2c25d
201a6b3053cc1422d2c3670b62616221d2290929
1cbec737f863e4922cee63cc2ebbfaafcd1cff8b790d8cfd2e6a5d550b648afa
File
To compute the checksum of a file or other input stream:
- create a new
hash.Hashfrom a crypto package such ascrypto/md5,crypto/sha1, orcrypto/sha256, - add data by writing to its
io.Writerfunction, - extract the checksum by calling its
Sumfunction.
input := strings.NewReader("Foo")
hash := sha256.New()
if _, err := io.Copy(hash, input); err != nil {
log.Fatal(err)
}
sum := hash.Sum(nil)
fmt.Printf("%x\n", sum)
1cbec737f863e4922cee63cc2ebbfaafcd1cff8b790d8cfd2e6a5d550b648afa
Comments
Be the first to comment!