你从GitHub下载二进制文件,发布页面列出SHA-256校验和。要验证它,你打开Terminal、输入shasum -a 256 ~/Downloads/file.tar.gz、等待它计算、然后手动并排比较两个64字符十六进制字符串。一个错误的字符,你无法判断文件是否损坏或你只是误读了哈希。
或者你需要生成字符串的MD5哈希 — 也许是缓存键、Gravatar URL或仍使用MD5签名的遗留API。命令在macOS上是md5 -s "text",在Linux上是md5sum。小差异,但足以在你在系统间切换时拖累你。
Terminal中的哈希:有效,但勉强
macOS附带md5、shasum和openssl dgst,涵盖大多数算法。但每个工具都有自己的语法。md5对字符串输入使用-s。shasum使用-a选择算法。openssl dgst需要-sha256或-md5作为标志。没有单一命令让你选择算法并对字符串进行哈希而无需查阅手册页。
对于偶尔需要快速哈希的开发人员,记住这些变化的认知开销与任务的简单性不相称。
一次粘贴生成哈希
Bellows包括支持MD5、SHA-1、SHA-256、SHA-384、SHA-512和其他常见算法的哈希生成器。输入或粘贴你的输入、选择算法,哈希立即出现。没有要记住的标志、没有语法可以查阅。
验证下载
当发布页面提供校验和时,你想将其与你下载的文件进行比较。在视觉工具中生成哈希使比较比在终端窗口中盯着两个字符串更容易 — 特别是对于64字符SHA-256哈希。
API签名和缓存键
某些API需要用于请求身份验证的HMAC或基于哈希的签名。其他则使用MD5或SHA哈希作为缓存键或内容标识符。能够快速生成请求体或字符串的哈希让你在调试期间验证你的实现是否与预期值匹配。
离线和私密
哈希输入可能包含敏感数据 — 密码、API密钥、内部标识符。Bellows完全在你的Mac上运行,没有网络访问,所以你哈希的任何东西都不会离开你的机器。