1 - 校验文件的作用

从网服务器下载文件,尤其是比较大的文件时,很容易由于网络不稳定,导致断点续传发生错误。

那要怎么确保下载文件的正确有效呢?

比较常见的做法是:提供下载服务的网站,在提供真实文件的同时,会提供该文件的校验值,比如 MD5,SHA1,SHA256 等某种格式,下载完文件后,计算它的校验值,如果和网站提供的一致,说明文件未损坏。

关于校验值:

校验值是一组 16 进制数,不区分大小写。

校验值本身只与文件内容有关,只要文件内容不改变校验值就不变,比如拷贝、移动、修改文件创建时间/访问时间、修改文件读/写/执行权限等操作都不会导致校验值发生改变。

2 - Linux 下生成校验文件

(1) 生成校验文件:

# 生成 md5 检验文件,检验文件的名称及后缀可自由定义,但一般情况下与文件名称相同:
md5sum file.tar > file.tar.md5 # 生成 sha1 校验文件:
sha1sum file.tar > file.tar.sha1 # 生成 sha256 检验文件:
sha256sum file.tar > file.tar.sha256

(2) 校验某个文件:

# 以 sha256 为例,需要待校验的文件,以及 sha256 文件:
sha256sum -c file.tar.sha256

如果输出【file.tar: OK】,说明文件校验成功。

3 - Windows 下生成校验文件

(1) Windows 自带了 certutil 工具,支持的算法有:MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512。

通过 cmd 命令行进入文件所属目录,就可以用 certutil 工具来生成需要的校验文件了:

certutil -hashfile file.zip MD5 >> MD5.txt
certutil -hashfile file.zip SHA1 >> SHA1.txt
certutil -hashfile file.zip SHA256 >> SHA256.txt

(2) 如果你安装了 Git Bash,那还可以使用类似 Linux 的命令:

sha256sum.exe file.zip >> file.zip.sha256

注意:Windows 下的方式 (1) 生成的校验文件,与 sha256sum 工具生成的校验文件不通用:

$ cat Linux.sha256
26088313ed187d6dbaed81601c536ba62c71109862720bc9b5f6eaba03e456de file.zip # Windows 下方式 (2) 生成的校验文件中有一个 * 号:
$ cat Win.sha256
26088313ed187d6dbaed81601c536ba62c71109862720bc9b5f6eaba03e456de *file.zip # Windows 下方式 (1) 生成的校验文件与 sha256sum 工具生成的文件内容明显不一致:
$ cat Win_certutil.sha256
SHA256 ▒▒ FusionInsight_UpdateService_6.5.0to6.5.1_RHEL.tar.gz ▒▒ϣ:
26088313ed187d6dbaed81601c536ba62c71109862720bc9b5f6eaba03e456de
CertUtil: -hashfile ▒▒▒▒ɹ▒▒▒ɡ▒

建议优先使用 Linux 系统下的工具生成校验文件;

若无 Linux 环境,可使用 Git Bash 等工具中的 sha256sum.exe

参考资料

https://blog.csdn.net/qq_28082757/java/article/details/78541581

https://blog.csdn.net/xkwy100/java/article/details/80297968

版权声明

作者:瘦风(https://healchow.com)

出处:博客园-瘦风的南墙(https://www.cnblogs.com/shoufeng)

感谢阅读,公众号 「瘦风的南墙」 ,手机端阅读更佳,还有其他福利和心得输出,欢迎扫码关注

本文版权归博主所有,欢迎转载,但 [必须在页面明显位置标明原文链接],否则博主保留追究相关人士法律责任的权利。

Linux、Windows 下手动生成 sha256 等类型的校验文件的更多相关文章

  1. 如何在Windows中手动生成SSH密钥?(转)

    在Windows上,您可以通过多种方式创建SSH密钥.Windows需要SSH客户端,但在其操作系统上没有默认的SSH客户端.请注意,Windows目前正在测试本机OpenSSH应用程序,一般,不提倡 ...

  2. Ruby入门--Linux/Windows下的安装、代码开发及Rails实战

    Ruby入门--Linux/Windows下的安装.代码开发及Rails实战 http://www.linuxidc.com/Linux/2014-04/100242.htm Ubuntu 13.04 ...

  3. windows下手动安装 Apache+php+mysql

    PHP 为什么先说php,因为apache的配置要写入php的一些路径 http://php.net/downloads.php  选择windows donwload 选择Thread Safe的版 ...

  4. 关于windows下c++生成的exe发布时的依赖dll问题

    如同linux下通常要求安装特定版本的libstdc++一样,windows下vc++生成的exe发布时的依赖dll问题,可以参见帖子,http://bbs.csdn.net/topics/39105 ...

  5. 快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)

    快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)(转载)   问题描述 与windows环境下不同,linux选择debug构建时并不 ...

  6. linux/windows下启用和停止VMware后台服务的脚本

    linux/windows下启用和停止VMware后台服务的脚本 linux/windows下启用和停止VMware后台服务的脚本 linux平台 windows平台 本文由乌合之众 lym瞎编,欢迎 ...

  7. windows下手动安装composer并配置环境变量

    windows下手动安装composer并配置环境变量   转载地址: https://my.oschina.net/7sites/blog/209997 之前发表过一篇如何为composer设置代理 ...

  8. Go交叉编译(Go语言Mac/Linux/Windows下交叉编译)

    Go交叉编译(Go语言Mac/Linux/Windows下交叉编译) 2019/11/21 Chenxin 在很多时候,由于开发的方便,会有这样的场景出现,使用Mac开发或使用Windows开发,需要 ...

  9. .pages怎么在windows上打开?Windows下打开在Mac中编辑的.pages文件方法

    .pages怎么在windows上打开?Windows下打开在Mac中编辑的.pages文件方法 1.最简单的方法是修改后缀名为.zip然后解压,解压后就可以看到一张图片,这个就是文档内容了. 2.更 ...

随机推荐

  1. BUU mrctf shit

    吐槽:去年没写出的题,现在终于可以上手了,昂哥nb 动调发现直接卡着不动了,怀疑是反调试,果然有好几处反调试 这里选择就不先nop了,先让程序跑起来,然后attach,在输入函数下面下个断点,atta ...

  2. Java学习笔记之—Java基础

    将学习到的JAVA基础用xmind记录了下来,需要原件的可以私信

  3. ARM汇编指令-STM32单片机启动

    EQU 给数字常量取一个符号名,相当于c中的define. AREA  告诉汇编器汇编一个新的代码段. SPACE 分配内存空间. PRESERVE   当前文件堆栈按照8字节对齐. EXPORT 声 ...

  4. C语言:3个数排序

    #include <stdio.h> int main() { int a,b,c,t; /*定义4个基本整型变量a.b.c.t*/ printf("Please input a ...

  5. win10禁止粘滞键 禁止按5次shift开启粘滞键

    如果你感觉粘滞键的快捷键影响了你的使用或想强行更改连续按5次上档键的指向的话,建议用你需要的程序替换%windir%\system32文件夹下面的sethc.exe @echo offclsdel / ...

  6. 一、Java预科学习

    1.1.什么是计算机 计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按照程序运行,自动.高速处理海量数据的现 ...

  7. C#/.NET/.NET Core学习视频汇总(持续更新ing)

    前言: 之前有很多小伙伴在我的公众号后台留言问有没有C#/.NET/.NET Core这方面相关的视频推荐,我一般都会推荐他们去B站搜索一下.今天刚好有空收集了网上一些比较好的C#/.NET/.NET ...

  8. python之数据驱动ddt操作(方法二)

    import unittestfrom ddt import ddt,unpack,datafrom selenium import webdriverfrom selenium.webdriver. ...

  9. 鸿蒙轻内核定时器Swtmr:不受硬件和数量限制,满足用户需求

    摘要:本文通过分析鸿蒙轻内核定时器模块的源码,掌握定时器使用上的差异. 本文分享自华为云社区<鸿蒙轻内核M核源码分析系列十四 软件定时器Swtmr>,作者:zhushy . 软件定时器(S ...

  10. sql select 1 和 exists

    SELECT * FROM LACOMMISION WHERE MANAGECOM LIKE'8694%' AND STATE='1' AND EXISTS(SELECT 1 FROM laagent ...