代码拉取完成,页面将自动刷新
package file
import (
"crypto/md5"
"fmt"
"io"
"os"
)
func MD5(filename string) string {
file, err := os.Open(filename)
defer file.Close()
if err != nil {
return ""
}
return MD5Reader(file)
}
func MD5Byte(src io.Reader) []byte {
by, _ := MD5ByteSize(src)
return by
}
// MD5ByteSize return md5 bytes and file's size
func MD5ByteSize(src io.Reader) ([]byte, int64) {
hash := md5.New()
ll, err := io.Copy(hash, src)
if err != nil {
return []byte{}, ll
}
return hash.Sum(nil), ll
}
func MD5Reader(src io.Reader) string {
return fmt.Sprintf("%x", MD5Byte(src))
}
// MD5Size return md5 hex(32) and file's size
func MD5Size(src io.Reader) (string, int64) {
has, ll := MD5ByteSize(src)
return fmt.Sprintf("%x", has), ll
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。