从非官网上下文件,或者用某些加速软件下文件,都会存在被别人植入病毒或后门的风险,此时计算MD5等校验和就很有必要了。通常网站提供文件时会同时提供该文件的校验值,如MD5,SHA1,SHA256等,当文件下载完成后,计算它的校验值,如果和网站提供的一致,就可以放心使用了。
Linux下可以直接使用md5sum/sha1sum/sha256sum等命令直接计算文件的对应校验值。
md5sum a.txt
sha1sum b.txt
sha256sum c.txt
在命令行下,可以使用Windows自带的certutil命令来计算一个文件的校验值:
支持的哈希算法有:MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512
G:\>certutil -hashfile -?
用法:
CertUtil [选项] -hashfile InFile [HashAlgorithm]
通过文件生成并显示加密哈希
选项:
-Unicode -- 以 Unicode 编写重定向输出
-gmt -- 将时间显示为 GMT
-seconds -- 用秒和毫秒显示时间
-v -- 详细操作
-privatekey -- 显示密码和私钥数据
-pin PIN -- 智能卡 PIN
-sid WELL_KNOWN_SID_TYPE -- 数字 SID
22 -- 本地系统
23 -- 本地服务
24 -- 网络服务
哈希算法: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
CertUtil -? -- 显示动词列表(命名列表)
CertUtil -hashfile -? -- 显示 "hashfile" 动词的帮助文本
CertUtil -v -? -- 显示所有动词的所有帮助文本
certutil的使用方法非常简单,语法如下:
certutil -hashfile 文件名 哈希算法
例如,计算我当前目录下名为 abc.txt 的 SHA512 的值:
G:\>certutil -hashfile abc.txt SHA512
SHA512 的 abc.txt 哈希:
fb515afabfdc076e527931fd5ca85c3f0a838df7c7c0529ba3a8af0151e4c32799fb1d72e9dfc65111fb1376f30e96d7872908c735c4d889c8e27d8c97370cd8
CertUtil: -hashfile 命令成功完成。
校验值是一组16进制数,不区分大小写,校验值本身只与文件内容有关,只要文件内容不改变校验值就不变;如复制/剪切/粘贴,修改文件创建时间/访问时间,修改文件读/写/执行属性等操作都不会导致校验值发生改变。
当掌握快速计算校验值方法后,以后发送文件时就可以附带上该文件的校验值以防止文件中途损坏或被他人无意间修改。
扩展阅读
certutil介绍:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil
MD5介绍:https://en.wikipedia.org/wiki/MD5
SHA介绍:https://en.wikipedia.org/wiki/Secure_Hash_Algorithms
1.引用Microsoft.Extensions.Logging.Log4Net.AspNetCore2.增加配置Program.cs public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args...
基本上都是缺少权限:grant select on SYS.V_$LOCKED_OBJECT TO sb;grant select on SYS.DBA_OBJECTS TO sb;grant select on SYS.V_$SESSION TO sb;grant select on SYS.V_$PROCESS TO sb;在以sb登录,可以正常创建存储
文章目录使用说明前言准备工作创建型模式创建型模式之_单例模式创建型模式之_原型模式创建型模式之_工厂模式创建型模型之_建造模式结构型模式结构型模式之_代理模式结构型模式之_适配器模式结构型模式之_桥接模式结构型模式之_装饰模式结构型模式之_外观模式结构型模式之_享元模式结构型模式之_组合模式行为型模式行为型模式之_状态模式行为型模式之_模板方法模式行为型模式之_策略模式行为型模式之_命令模式结构型模式之_责任链模式行为型模式之_观察者模式行为型模式之_中介模式行为型模式之_备忘录模式行为型模式之_解释器模式
listview 跟 TimePicker使用时,点击TimePicker的向上和向下方向键修改时间是,会报错,06-23 00:58:01.255: E/AndroidRuntime(8123): FATAL EXCEPTION: main06-23 00:58:01.255: E/AndroidRuntime(8123): java.lang.NullPointerExcept
Android提供了SQLDatabase代表一个数据库 (底层就是一个数据库文件)静态方法打开一个文件对应的数据库:static SQLiteDAtabase openDatabase (String path,SQLiteDatabase.Cursor Factory factory ,int flags)打开path文件所代表的SQL数据库。sta
fatal error: r2live/States.h: 没有那个文件或目录compilation terminated.
效果图注册流程1.[前端] 用户在注册页面提交注册信息;2.[后端] 校验用户提交的参数,有误直接返回错误信息,无误向下执行;3.[后端] 随机生成一个ID,将ID作为key,用户信息作为value,存入redis,设置时长;4.[后端] 生成激活链接,通过邮件系统发送邮件到用户邮箱5.[前端] 用户点击上图的“确认注册”;6.[后端] 校验value是否过期,校验邮箱是否已经注册...
简介在开发中用<welcome-file-list/>设置欢迎界面,始终报404,参考了网上所有现有的做法仍旧不能解决,最终发现失败的原因是因为请求被拦截。配置说明设置index.jsp页面:写一个简单的index.jsp页面,内容如下<html xmlns="http://www.w3.org/1999/xhtml"><head> ...
参加某个培训,需要回答三个测试问题,于是有了今天的文章。测试题目有三,一个一个答:第 1 题:推荐一篇你认为不错的,关于产品或者运营方面的文章,并简要说明推荐原因。其实,一开始其实我是想不起来的,我需要看看收藏夹和微信的收藏,恩。果然就是这篇了。 Heidi 格物志的《攻城师们期望的产品经理是什么样的?》不是讲交互,不是讲趋势,这是一个讲沟通的文章。喜欢这篇文章第一
MinIO整合Springboot实现文件上传存储
STM32安装教程和J-link烧录驱动安装教程一、SOC二、安装简介三、STM32工程创建步骤四、J-link安装过程五、STM32型号