DEV Community

miccho27
miccho27

Posted on • Edited on • Originally published at rapidapi.com

Generate MD5, SHA-256 & HMAC in 1 HTTP Call — Free Hash API (2026)

TL;DR: Get production-ready results in 1 HTTP call. No signup, no credit card, no rate limit.

👉 Try all 40+ Free APIs on RapidAPI

Free Hash & Checksum API - Generate MD5, SHA, HMAC via REST API

Generating hashes programmatically is common, but managing cryptographic libraries across languages is tedious. You need MD5 for checksums, SHA-256 for security, HMAC for signatures. Installing crypto libraries adds dependencies. What if you could generate hashes via REST API without installation?

The Hash & Checksum Generator API computes cryptographic hashes instantly: MD5, SHA-1, SHA-256, SHA-512, and HMAC. Perfect for data integrity verification, API signatures, password hashing workflows, file checksums, and security tokens.

Why Use This API?

Hashing matters:

  • Data Integrity – Verify files/data haven't been tampered with
  • API Security – Sign requests with HMAC-SHA256
  • Passwords – Generate secure password hashes
  • Checksums – Verify downloads (not cryptographic, just integrity)
  • Deduplication – Hash files to detect duplicates

Quick Example - cURL

# Generate SHA-256 hash
curl -X POST "https://hash-generator-api.p.rapidapi.com/generate" \
  -H "X-RapidAPI-Key: YOUR_KEY" \
  -H "X-RapidAPI-Host: hash-generator-api.p.rapidapi.com" \
  -H "Content-Type: application/json" \
  -d '{"text": "hello world", "algorithm": "sha256"}'
Enter fullscreen mode Exit fullscreen mode

Response:

{
  "success": true,
  "text": "hello world",
  "algorithm": "sha256",
  "hash": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
  "length": 64
}
Enter fullscreen mode Exit fullscreen mode

Python Example

import requests
import hmac
import hashlib

url = "https://hash-generator-api.p.rapidapi.com/generate"
headers = {
    "X-RapidAPI-Key": "YOUR_API_KEY",
    "X-RapidAPI-Host": "hash-generator-api.p.rapidapi.com",
    "Content-Type": "application/json"
}

# Verify file integrity
file_content = open("data.csv", "rb").read()
expected_hash = "a1b2c3d4e5f6..."

payload = {
    "text": file_content.decode('utf-8'),
    "algorithm": "sha256"
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()

if data["hash"] == expected_hash:
    print("✅ File integrity verified")
else:
    print("❌ File has been modified!")
Enter fullscreen mode Exit fullscreen mode

JavaScript / Node.js Example

const axios = require("axios");
const crypto = require("crypto");

const generateHash = async (text, algorithm = "sha256") => {
  const response = await axios.post(
    "https://hash-generator-api.p.rapidapi.com/generate",
    { text, algorithm },
    {
      headers: {
        "X-RapidAPI-Key": process.env.RAPIDAPI_KEY,
        "X-RapidAPI-Host": "hash-generator-api.p.rapidapi.com"
      }
    }
  );

  return response.data.hash;
};

// Sign API requests with HMAC
const signRequest = async (payload, secret) => {
  const payload_str = JSON.stringify(payload);
  const signature = await generateHash(payload_str + secret, "sha256");

  return {
    payload,
    signature,
    timestamp: Date.now()
  };
};

// Create signed request
const api_payload = {
  user_id: 123,
  action: "update_profile",
  timestamp: Date.now()
};

const signed = await signRequest(api_payload, process.env.API_SECRET);
console.log("Signed request:", signed);
Enter fullscreen mode Exit fullscreen mode

Supported Algorithms

Algorithm Output Size Use Case Security
MD5 32 chars (128-bit) Checksums, duplicates ⚠️ Broken, don't use for security
SHA-1 40 chars (160-bit) Legacy, checksums ⚠️ Deprecated, use SHA-256
SHA-256 64 chars (256-bit) Passwords, signatures ✅ Current standard
SHA-512 128 chars (512-bit) High-security hashing ✅ Maximum security
HMAC-SHA256 64 chars API signatures, tokens ✅ Requires secret key

Real-World Use Cases

1. File Integrity Verification

Verify downloaded files haven't been corrupted or tampered with.

# Check download integrity
download_hash = get_metadata("file")["sha256"]
file_content = download_file("https://example.com/file.zip")

computed_hash = generate_hash(file_content, "sha256")
assert computed_hash == download_hash, "File corrupted!"
Enter fullscreen mode Exit fullscreen mode

2. API Request Signing

Sign API requests for authentication.

def sign_request(method, path, payload, secret_key):
    message = f"{method}:{path}:{json.dumps(payload)}"
    signature = generate_hash(message, "hmac_sha256", secret=secret_key)

    return {
        "X-Signature": signature,
        "X-Timestamp": int(time.time())
    }
Enter fullscreen mode Exit fullscreen mode

3. Duplicate Detection

Hash files to detect duplicates efficiently.

# Find duplicate files
files = get_all_files()
hashes = {}

for file in files:
    file_hash = generate_hash(file.content, "sha256")

    if file_hash in hashes:
        print(f"Duplicate: {file.name} and {hashes[file_hash].name}")
    else:
        hashes[file_hash] = file
Enter fullscreen mode Exit fullscreen mode

4. Password Hashing Workflow

Hash passwords for storage (as part of bcrypt/argon2 workflow).

def register_user(email, password):
    password_hash = generate_hash(password, "sha256")
    # Use bcrypt or argon2 on top of this
    user = User(
        email=email,
        password_hash=bcrypt(password_hash)
    )
    user.save()
Enter fullscreen mode Exit fullscreen mode

5. Cache Key Generation

Generate cache keys from request parameters.

def get_cached_response(user_id, filters):
    cache_key = generate_hash(f"{user_id}:{json.dumps(filters)}", "sha256")

    cached = cache.get(cache_key)
    if cached:
        return cached

    result = compute_expensive_query(user_id, filters)
    cache.set(cache_key, result, ttl=3600)
    return result
Enter fullscreen mode Exit fullscreen mode

6. Data Integrity Audit

Track when data changes by monitoring hash changes.

def audit_data_changes():
    current_state = get_database_dump()
    current_hash = generate_hash(current_state, "sha256")

    previous_hash = load_previous_hash()
    if current_hash != previous_hash:
        log_change(current_hash)
        save_new_hash(current_hash)
Enter fullscreen mode Exit fullscreen mode

Pricing

Plan Cost Requests/Month Best For
Free $0 500 Development, testing
Pro $5.99 50,000 Production APIs, verification
Ultra $14.99 500,000 Enterprise security

Related APIs

  • JWT Decoder API – Verify HMAC signatures in tokens
  • String Utilities API – Normalize text before hashing
  • Random Data API – Generate random seeds/salts
  • UUID Generator API – Create unique identifiers

Get Started Now

Generate hashes free on RapidAPI

No credit card. 500 free requests to hash data securely.


Using this for API security? Share your signing strategy in the comments!

Top comments (0)