开发者必备的哈希工具清单
← 返回博客
开发者必备的哈希工具清单
· 5 分钟阅读
操作系统内置命令行工具
最快捷的哈希工具往往就在你的操作系统中:
# Linux (GNU coreutils)
md5sum file.iso # MD5
sha1sum file.iso # SHA1
sha256sum file.iso # SHA256
sha512sum file.iso # SHA512
b2sum file.iso # BLAKE2b (modern)
# macOS
md5 file.iso
shasum -a 256 file.iso
openssl dgst -sha256 file.iso
# Windows PowerShell
Get-FileHash file.iso -Algorithm MD5
Get-FileHash file.iso -Algorithm SHA256
Get-FileHash file.iso -Algorithm SHA512
# Windows cmd
certutil -hashfile file.iso MD5
certutil -hashfile file.iso SHA256
OpenSSL:全能的密码学工具
OpenSSL 是几乎所有平台都有的密码学瑞士军刀,支持几乎所有常见哈希算法:
# Hash a file
openssl dgst -md5 file.iso
openssl dgst -sha1 file.iso
openssl dgst -sha256 file.iso
openssl dgst -sha512 file.iso
# Hash a string
echo -n "hello" | openssl dgst -sha256
# Generate HMAC
echo -n "message" | openssl dgst -sha256 -hmac "secret-key"
# List all supported algorithms
openssl list -digest-algorithms
各编程语言的内置哈希库
主流编程语言都提供了内置的哈希功能,无需安装额外依赖:
// JavaScript / Node.js (crypto module - built-in)
const crypto = require('crypto');
crypto.createHash('md5').update(data).digest('hex');
crypto.createHash('sha256').update(data).digest('hex');
crypto.createHmac('sha256', key).update(data).digest('hex');
# Python (hashlib - built-in)
import hashlib
hashlib.md5(data).hexdigest()
hashlib.sha256(data).hexdigest()
hashlib.sha512(data).hexdigest()
import hmac; hmac.new(key, data, hashlib.sha256).hexdigest()
# Go (crypto/* - built-in)
import "crypto/md5"; import "crypto/sha256"
fmt.Sprintf("%x", md5.Sum(data))
fmt.Sprintf("%x", sha256.Sum256(data))
# PHP (built-in functions)
md5($string);
sha1($string);
hash('sha256', $string);
hash_hmac('sha256', $data, $key);
rhash:多算法批量哈希工具
rhash 是一个开源的命令行工具,一次可以计算多种算法的哈希,适合需要同时提供多种校验和的场景:
# Install: apt install rhash / brew install rhash
rhash --md5 --sha256 --sha512 file.iso
# Output all three in one command
# Generate checksums for release files
rhash --md5 --sha256 *.zip > SHA256SUMS
# Verify
rhash --check SHA256SUMS
hashdeep:递归目录哈希工具
hashdeep 专门用于对整个目录树进行哈希,生成或验证目录中所有文件的哈希清单,常用于数字取证和文件系统完整性监控:
# Generate MD5 hash for all files in directory
md5deep -r /path/to/directory > hashes.txt
# Audit mode: check which files have changed
md5deep -ra hashes.txt /path/to/directory
# Output: files that match, don't match, or are new
在 CI/CD 中验证构建产物
在 CI/CD 流水线中,对构建产物进行哈希验证是一个重要的安全实践(供应链安全):
# GitHub Actions example
- name: Generate checksums
run: |
sha256sum dist/*.tar.gz > SHA256SUMS
sha256sum dist/*.zip >> SHA256SUMS
- name: Verify checksums in subsequent jobs
run: |
sha256sum --check SHA256SUMS
# Docker image verification
docker pull myimage:v1.0
docker inspect myimage:v1.0 --format=''
# Compare with published digest
在线哈希工具的选择标准
选择在线哈希工具时,以下特性很重要:客户端计算(在浏览器内运行,数据不发送到服务器)、支持多种算法(至少包含 MD5、SHA1、SHA256、SHA512)、支持文件哈希(而非只支持文本)、加载速度快、界面简洁、一键复制功能。我们的工具满足所有这些要求,并且完全免费。
Python 哈希工具脚本
#!/usr/bin/env python3
# hash_file.py - Calculate multiple hash algorithms for a file
import hashlib, sys
def hash_file(filepath):
algorithms = {
'MD5': hashlib.md5(),
'SHA1': hashlib.sha1(),
'SHA256': hashlib.sha256(),
'SHA512': hashlib.sha512(),
}
with open(filepath, 'rb') as f:
while chunk := f.read(65536):
for h in algorithms.values():
h.update(chunk)
for name, h in algorithms.items():
print(f"{name:8} {h.hexdigest()}")
if __name__ == '__main__':
hash_file(sys.argv[1])
立即尝试在线工具,无需安装,免费使用。
打开工具 →
立即免费使用相关工具
免费使用 →