# 哈希与 HMAC 生成器

计算文本或文件的 MD5、SHA-1、SHA-2、SHA-3、BLAKE2、BLAKE3 和 CRC-32 哈希,并可选 HMAC。

https://codeknife.dev/zh/hash-shengcheng/

## 它能做什么

计算文本或整个文件的 MD5、SHA-1、SHA-2、SHA-3、BLAKE2、BLAKE3 和 CRC-32 哈希，并可选 HMAC。文件会分成小块读取，所以大文件也能处理。哈希在你的浏览器中完成，本页不显示广告，你分享的链接也绝不包含你的文本或密钥。

## 如何使用

1. 输入或粘贴文本，也可以把文件拖到输入框上。
2. 选择算法，以及结果的写法：十六进制、大写十六进制、Base64 或 URL 安全的 Base64。
3. 要生成 HMAC，请打开它并输入密钥。密钥按 UTF-8 文本读取。
4. 复制哈希。打开逐行选项，可以分别计算每一行的哈希。

## 示例

`hello` 的 SHA-256：

```
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
```

`123456789` 的 CRC-32：

```
cbf43926
```

## 须知

- SHA-256 是安全的默认选择。MD5 和 SHA-1 在安全方面已被攻破，只适合用来比对旧的校验和。
- CRC-32 是校验和，不是哈希函数，所以不能用于 HMAC。
- 普通哈希的速度太快，根本无法保护密码。请改用 Argon2、scrypt 或 bcrypt。

## 什么是哈希?

哈希函数能把任意输入变成一个简短、定长的“指纹”。相同输入总是得到相同哈希,不同输入得到不同哈希。哈希可用于校验下载、检测改动和为数据建立索引。HMAC 会把密钥混入哈希,只有持有密钥的人才能生成或验证。

## 常见问题

### 我该用哪种算法?

SHA-256 是安全的默认选择。SHA-3 和 BLAKE3 是较新的替代方案。MD5 和 SHA-1 在安全上已被攻破,只用于核对旧的校验值。CRC-32 只能发现意外损坏。

### 能用它给密码做哈希吗?

不要用于存储。普通哈希太快,无法保护密码;请在服务器上使用 Argon2、scrypt 或 bcrypt 这类专用的密码哈希。

### 我的文本或文件会被上传吗?

不会。哈希在你的浏览器中完成,文件以小块读取,因此大文件也能处理。你输入的内容不会发送到我们的服务器,本页也不显示广告。