说明

在实际的开发过程中,总需要对文件进行md5加密的需求,在开发过程中,我就遇到了将表单文件MD5后再存储本地的需求。

解决

MD5的所需要的包在”crypto/md5”包中,需要先实例化一个MD5对象,然后在此基础上调用sum方法即可

md5 := md5.New()
io.Copy(md5,file)
MD5Str := hex.EncodeToString(md5.Sum(nil))

上面的代码实现了计算了文件MD5,其中file是multipart.File类型的,也可以是其他的已打开的其他文件类型。
当然也可以不使用io.copy,而是直接使用sum函数来计算:

md5 := md5.New()
MD5Str := hex.EncodeToString(md5.Sum(file))

这样是直接调用了sum函数来计算文件的值可能要比io.copy稍微慢一些。

字符串的MD5

有时候需要将已知的一段字符串加密,其实和文件加密大概是类似的,只需要调用write方法将字符串写入hash中:

md5 := md5.New()
md5.Write([]byte("hello,world!"))
MD5Str := hex.EncodeToString(md5.Sum(nil))

[Golang]计算一个文件的MD5值相关推荐

  1. 如何利用openSsl来计算一个文件的md5值?

    openssl环境的配置, 我就不再说了.在本文中, 我们来讨论一个文件的md5值, 废话少说, 直接给大家代码, 上点干货: [cpp] view plaincopy #include <io ...

  2. 用windows api 计算文件的md5值

    我自己封装了一个函数GetMd5(LPCWSTR FileDirectory).其中调用了windows api:CryptAcquireContext,CryptCreateHash,CryptHa ...

  3. linux 文件md5,Linux下计算文件的MD5值

    脚本功能 脚本使用Perl编写,计算文件的MD5值 脚本用途 服务器在安装完操作系统后,计算PATH变量里面所有的二进制文件的MD5.计算单个文件MD5值.计算某个目录(包括子目录)下所有的文件的MD ...

  4. 使用Java计算文件的MD5值(含修改MD5值的方法)

    什么是 MD5 ? MD5(Message Digest Algorithm,信息摘要算法),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保 ...

  5. python计算文件md5值_用python计算文件的MD5值

    md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等.下面讲解在python中如何使用md5算法 ...

  6. c语言md5函数 linux,Linux下C语言计算文件的md5值(长度32)

    google了好久都没有找到合适的,其实我只需要一个函数,能计算文件的 md5 值就好, 后来找到了 md5.h 和 md5.c 的源文件,仿照别人的封装了个函数(他那个有问题,和 md5sum 计算 ...

  7. python3计算md5_python 计算文件的md5值实例

    较小文件处理方法: import hashlib import os def get_md5_01(file_path): md5 = None if os.path.isfile(file_path ...

  8. golang 获取文件的MD5值

    golang 获取文件的MD5值 调用下面的函数(输入参数是文件的路径,如/home/user/test.txt),即可获取指定文件的MD5值. func GetFileMD5(pathName st ...

  9. java 文件的md5值_Java计算文件的MD5值

    import java.io.File; import java.io.FileInputStream; import java.math.BigInteger; import java.securi ...

最新文章

  1. 别光顾着背单词了,每天花18分钟做这件事,英语水平暴增!
  2. 微信小程序---导航(navigator)
  3. python 多线程 线程如何获得返回值 (重写threading.Thread类)
  4. 距离矢量路由算法_简单聊聊路由协议
  5. sublime text 常用快捷键
  6. 【编译原理笔记10】语法制导翻译:在递归预测过程中进行翻译,L属性定义的自底向上翻译
  7. Python下载Wyoming怀俄明大学探空数据(数据网址更新)
  8. LED显示屏智能化监控运维管理解决方案
  9. 探索性测试的分类与测试用例
  10. 2019年还剩1天,我从外包公司离职了
  11. android p 小米6,小米6还能再战几年!将升级Android P
  12. 推荐一款免费的万能电子书格式转换工具电子书转换器NeatConverter
  13. 《东周列国志》第三回 犬戎主大闹镐京 周平王东迁洛邑
  14. 国产Si24R2F+2.4GHz超低功耗有源RFID无线发射芯片
  15. Pinterest模式的魅力何在?国内山寨有哪些?
  16. dubbo SPI机制与@Adaptive自适应扩展机制
  17. 需要查询前一次该厂商,料号的单价, 这个sql语句很难写,你碰到过没有
  18. 微信小程序游戏「跳一跳」高分秘籍
  19. 1.win7与Ubuntu文件共享工具-Samba安装及使用方法
  20. 英语MuttonfatJade羊脂玉muttonfatjade单词

热门文章

  1. 小谈React、React Native、React Web
  2. jQuery -- 光阴似箭(五):AJAX 方法
  3. (网页)中的简单的遮罩层
  4. 初学者Web介绍一些前端开发中的基本概念用到的技术
  5. bzoj 2007 [Noi2010]海拔——最小割转最短路
  6. [python]-数据科学库Numpy学习
  7. 伙伴分配器的一个极简实现
  8. linux下获取时间的函数
  9. 是否会成为问题——Linq to Sql的执行可能无法复用查询计划
  10. C语言学习,关于fflush 和setvbuf