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.Hash
from a crypto package such ascrypto/md5
,crypto/sha1
, orcrypto/sha256
, - add data by writing to its
io.Writer
function, - extract the checksum by calling its
Sum
function.
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!