Tạo mã hash API
Tính MD5, SHA-1, SHA-256, SHA-384, SHA-512 và CRC32 của chuỗi hoặc file trong một lần gọi, xuất hex hoặc base64, hỗ trợ ký HMAC.
API hash tính checksum và giá trị băm mật mã của một chuỗi hoặc một file. Mặc định API trả về tất cả thuật toán cùng lúc – MD5, SHA-1, SHA-256, SHA-384, SHA-512 và CRC32 – hoặc chỉ những thuật toán bạn liệt kê trong algorithm (phân tách bằng dấu phẩy, ví dụ sha256,md5).
Dữ liệu đầu vào có thể là text (query hoặc JSON), body dạng text thô, hoặc dữ liệu nhị phân: upload file qua trường multipart file, gửi thẳng byte trong body, hay truyền base64 qua file_base64. Dung lượng file tối đa theo gói (Free 5 MB, Starter 20 MB, Pro 50 MB). Phản hồi kèm số byte đã băm.
Đặt hmac_key để nhận chữ ký HMAC thay vì hash thường (HMAC-SHA256 là chuẩn mà đa số dịch vụ webhook dùng), và encoding=base64 để xuất base64 thay cho hex. CRC32 luôn trả về 8 ký tự hex.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
text | body|query | string | có | Chuỗi cần băm (UTF-8). Không cần khi gửi file hoặc body text thô. | |
file | body | file | không | File cần băm: trường multipart file, body nhị phân thô, hoặc base64 qua file_base64. Tối đa 5/20/50 MB tuỳ gói. | |
algorithm | body|query | string | không | all | all hoặc danh sách md5, sha1, sha256, sha384, sha512, crc32 phân tách bằng dấu phẩy (tên khác algorithms). |
encoding | body|query | string | không | hex | hex hoặc base64 (CRC32 luôn là hex). |
hmac_key | body|query | string | không | Khoá bí mật: trả về chữ ký HMAC thay vì hash thường. |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/hash" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello world"}'const res = await fetch('https://apibox.io.vn/v1/hash', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"text": "hello world"
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/hash",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"text": "hello world"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/hash');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"text":"hello world"}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"encoding": "hex",
"bytes": 11,
"hashes": {
"md5": "5eb63bbbe01eeed093cb22bb8f5acdc3",
"sha1": "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed",
"sha256": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
"sha384": "fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd",
"sha512": "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f",
"crc32": "0d4a1185"
}
}
Ứng dụng
- Kiểm tra tính toàn vẹn file bằng checksum SHA-256 sau khi tải lên/tải xuống
- Tính chữ ký HMAC-SHA256 để test code xác thực webhook
- Tạo cache key hoặc ETag từ nội dung
- Loại bỏ file trùng lặp dựa trên mã hash
Hỏi đáp
Tính chữ ký HMAC-SHA256 thế nào?
Gửi POST {"text": "payload", "algorithm": "sha256", "hmac_key": "khoa-bi-mat"}. Thêm "encoding": "base64" nếu bên cung cấp yêu cầu base64 (như Shopify) thay vì hex (GitHub, Stripe).
Có hash được file thay vì chuỗi không?
Được. Upload qua trường multipart "file", gửi byte thô trong body, hoặc truyền "file_base64" trong JSON. Giới hạn là dung lượng file theo gói (5/20/50 MB).
MD5 còn an toàn không?
Không dùng cho mật khẩu hay chữ ký: MD5 và SHA-1 đã bị phá về va chạm. Chúng vẫn ổn cho checksum thông thường và tương thích hệ thống cũ; với bảo mật hãy dùng SHA-256/SHA-512, còn mật khẩu nên dùng bcrypt hoặc Argon2.
API liên quan
Mã hoá / Giải mã
Mã hoá hoặc giải mã chuỗi sang Base64, Base64URL, hex, URL encode, HTML entity, Unicode escape, ROT13 hay nhị phân chỉ với một lần gọi API.
***Tạo mật khẩu
Tạo mật khẩu ngẫu nhiên an toàn bằng CSPRNG (4–256 ký tự, tối đa 100 cái mỗi lần) hoặc kiểm tra độ mạnh, entropy và thời gian bẻ khoá của mật khẩu.
JWTGiải mã & ký JWT
Giải mã mọi JWT, kiểm tra hạn dùng và xác thực chữ ký bằng secret, PEM hoặc JWK – hoặc ký token mới với HS256/384/512, RS, PS, ES.