在 Mac OS X中校验文件的SHA1值

本文介绍如何在MacOSX系统中利用终端命令shasum来检验文件的SHA1值,确保文件未被篡改或损坏。文中详细解释了命令的使用方法,并提供了实际操作示例。

检查 SHA1 值

SHA1 值常用于检验分布后的文件是否受损或缺失。通常情况下,用 SHA1 验证可以检查传输后的文件是否仍是原始文件。如果 SHA1 值和分发者提供的相符,那么文件就没有受损或被篡改。

如何在 Mac OS X 中检验某个文件的 SHA1 值

运行终端(应用程序 – 实用工具 – 终端.app),并按以下语法执行检查:

shasum /path/to/file

例如,要检查桌面上一个名为“DownloadedFile.dmg”的 SHA1 值,可以这样输入:

shasum ~/Desktop/DownloadedFile.dmg

检验的结果会和下面的类似:

$ shasum ~/Desktop/CheckMe.zip
ddfdb3a7fc6fc7ca714c9e2930fa685136e90448 CheckMe.zip

那个最长的 16 进制字符串就是该文件的 SHA1 值。

如果文件路径比较复杂,不要忘记多多使用 Mac OS X 的拖拽特性,输入“shasum”空格之后,直接把要检验的文件拖入终端窗口中,其路径会自动补齐。

shasum (把文件拖放到这里)

记住一定要在“shasum”后面输入一个空格才行。

Shasum 命令默认检测 SHA1 值,而通过参数 -a 可以修改为 224、256、384 或 512。

SHA1 值检验应用举例

一个经典实例就是从苹果官网直接下载升级包文件后,对 SHA1 值进行校验。正确的 SHA1 值会显示在每个升级包下载页面的最下方,如下图。这个字符串可以让用户快速检查下载的文件是否完整。

SHA1 Lion Update

SHA1 验证的另一个常用实例就是检验 P2P 传输来的文件是否完整和正确,传输中途是否被篡改。只需要查阅文件提供方的网站或进行询问,获得正确的 SHA1 值后,与自己检验得到的 SHA1 值对比就可以了。两个值一样则说明文件是完整的。

在 WPS 中校验姓名是否仅为汉字,有公式法和 VBA 代码法两种方式。 ### 公式法 #### 支持 `SEQUENCE` 函数的版本(较新版本 WPS) ```excel =IF(SUMPRODUCT(EXACT(MID(A1,SEQUENCE(LEN(A1)),1),SUBSTITUTE(MID(A1,SEQUENCE(LEN(A1)),1), "[^\u4e00-\u9fa5]", ""))) = LEN(A1), "仅为汉字", "包含非汉字") ``` 此公式利用 `SEQUENCE` 函数生成从 1 到单元格 A1 长度的序列,`MID` 函数逐个提取字符,`SUBSTITUTE` 函数将非汉字字符替换为空,`EXACT` 函数比较原字符和替换后的字符,最后用 `SUMPRODUCT` 函数统计相等字符数量,若与单元格内容长度相等,则判定仅含汉字[^1]。 #### 不支持 `SEQUENCE` 函数的低版本 ```excel =IF(SUMPRODUCT(EXACT(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),SUBSTITUTE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1), "[^\u4e00-\u9fa5]", ""))) = LEN(A1), "仅为汉字", "包含非汉字") ``` 该公式用 `ROW(INDIRECT("1:"&LEN(A1)))` 替代 `SEQUENCE` 函数功能,实现相同校验逻辑[^1]。 ### VBA 代码法 可以通过编写 VBA 代码来实现校验功能。以下是示例代码: ```vba Function IsChineseName(name As String) As Boolean Dim i As Integer For i = 1 To Len(name) If AscW(Mid(name, i, 1)) < &H4E00 Or AscW(Mid(name, i, 1)) > &H9FA5 Then IsChineseName = False Exit Function End If Next i IsChineseName = True End Function ``` 将上述代码复制到 VBA 编辑器中,在单元格中输入 `=IsChineseName(A1)` 即可对 A1 单元格的姓名进行校验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值