This is not correct:
data := make([]byte, 100)
count, error := file.Read(data)
...
funcio.Write(data)
First, you're reading at most 100 bytes from the file. If the file is
bigger, the rest is not included in the hash. If the file is exactly
100 bytes, Read is not guaranteed to return all of them in a single
call. If the file is smaller, you're writing a bunch of zeros into the
hash, which aren't part of the data returned by file.Read. You should
be using funcio.Write(data[:count]) instead and doing this in a loop
until Read returns io.EOF.
You can use ioutil.ReadFile to make your life easier, but it's not
ideal for large files.