Free online hash generator. Compute MD5, SHA-1, SHA-256, SHA-512, SHA-3, bcrypt and HMAC from text or files — all in your browser, nothing uploaded.
This hash generator computes MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3 and bcrypt from the same input, side by side, so you can compare digests without opening a different tool for each algorithm. Type or paste text, or drop in one or more files, and every algorithm you have ticked produces its digest immediately. Everything runs in your browser — no text and no file contents are transmitted anywhere, which matters when the thing you are hashing is a password candidate, a config file or a sample of suspected malware.
Beyond straight hashing, the tool includes HMAC mode for keyed digests, a hash identifier that works out what algorithm produced an unknown digest, a comparison view for checking a computed hash against an expected value, batch file hashing, a session history of previous results, upper/lowercase output, and a use-case selector that recommends the right algorithm for password storage, file integrity, digital signatures, HMAC authentication or legacy compatibility.
Digest length is the quickest way to narrow down an unknown hash, and the security column is the quickest way to decide whether you should still be using one.
| Algorithm | Output | Hex characters | Status | Reasonable use today |
|---|---|---|---|---|
| MD5 | 128-bit | 32 | Broken — practical collisions since 2004 | Non-security checksums, malware sample IDs, matching legacy records |
| SHA-1 | 160-bit | 40 | Broken — SHAttered collision, 2017 | Legacy interop only; never for signatures |
| SHA-256 | 256-bit | 64 | Secure | The default choice: integrity, signatures, certificates, blockchain |
| SHA-384 | 384-bit | 96 | Secure | Truncated SHA-512; common in TLS cipher suites |
| SHA-512 | 512-bit | 128 | Secure | Faster than SHA-256 on 64-bit CPUs; larger margin |
| SHA-3 (256-bit) | 256-bit | 64 | Secure | Different internal design (sponge construction) from the SHA-2 family |
| bcrypt | 184-bit encoded | 60-char $2a$ string | Secure and deliberately slow | Password storage — and only password storage |
A worked example makes the length rule concrete. Hashing the string hello with MD5 gives 5d41402abc4b2a76b9719d911017c592 — 32 hex characters. The same input through SHA-1 gives 40 characters, through SHA-256 gives 64, and through SHA-512 gives 128. bcrypt looks nothing like the others: it produces a self-describing string such as $2a$10$... where 2a is the variant and 10 is the cost factor, and it embeds a random salt, so hashing the same password twice deliberately yields two different strings.
No — and this is worth stating plainly, because “md5 to sha256 converter” is one of the most common things people search for. A hash is a one-way function. An MD5 digest is 128 bits of output derived from input of any size; the original input is not recoverable from it, so there is nothing to feed into SHA-256. The only way to obtain the SHA-256 of some data is to have the data itself.
What people usually want is one of two things. Either they have the original text and need both digests — in which case tick MD5 and SHA-256 together here and you get both from one input. Or they have inherited a system storing MD5 password hashes and need to migrate it to something modern. The migration pattern for that is to hash on next login: when a user authenticates successfully against the stored MD5, recompute the password with bcrypt, store the new hash, and drop the old one. There is no bulk conversion path, by design.
This is a generator, not a cracker. It computes digests forward; it does not reverse them, and it does not run dictionary or rainbow-table lookups. That distinction matters because the two are often conflated. A rainbow table is a precomputed structure that trades storage for time to reverse unsalted hashes, which is precisely why every serious password hashing scheme adds a per-user salt — a salt makes precomputation worthless, since the attacker would need a separate table per salt value.
If your goal is threat intelligence rather than cracking, compute a file’s SHA-256 here and then check it against known-malware corpora using the hash lookup tool. If you want to work out what algorithm an unknown digest came from before doing anything else with it, the built-in hash identifier reads the length and format and reports the candidates with a confidence rating — and for a bcrypt string it can verify a candidate password directly.
The single most common mistake is using a fast general-purpose hash for passwords. MD5, SHA-1 and the whole SHA-2 family are designed to be fast, which is exactly what an attacker with a GPU wants: billions of guesses per second. bcrypt is designed to be slow and to have a tunable cost factor, so you can raise the work per guess as hardware improves. For password storage, choose bcrypt (this tool uses a cost factor of 10) or an equivalent adaptive function.
For everything else, the fast hashes are correct. File integrity and checksums, deduplication, content addressing, digital signature input, and certificate fingerprints all want SHA-256. Use HMAC — not a plain hash of key concatenated with message — whenever you are authenticating a message with a shared secret, because naive concatenation is vulnerable to length-extension attacks against SHA-2. If you need subresource integrity attributes for a script or stylesheet tag, the dedicated SRI hash generator produces the base64 format browsers expect.
Yes, it is free with no registration, and it runs entirely in your browser. Once the page has loaded, the hashing itself needs no network connection.
No. Text and file contents are hashed locally in JavaScript and never transmitted. Files are read with the browser’s File API and stay on your machine.
Yes — that is the point of the algorithm selector. Select All ticks every supported algorithm, so a single input produces MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3 and bcrypt together.
No. Hashing is one-way and this tool only computes hashes. Nothing here reverses a digest or performs dictionary lookups.
Paste it into the hash identifier. A 32-character hex string points to MD5 or NTLM, 40 to SHA-1 or RIPEMD-160, 64 to SHA-256 or SHA-3-256, 128 to SHA-512, and a string beginning $2a$, $2b$ or $2y$ is bcrypt.
Because bcrypt generates a fresh random salt each time and stores it inside the output string. That is correct behaviour — verification works by extracting the salt from the stored hash and re-running the function, which the tool’s verify field does for you.
Only where an adversary is not involved. It remains fine as a fast checksum for accidental corruption and as an identifier for malware samples, because incident response corpora are indexed by it. It is unsafe for passwords, signatures, or any case where someone might deliberately construct a collision.
HMAC combines a hash function with a secret key to produce a digest only holders of the key can compute. Use it for API request signing and webhook verification. Switch on HMAC mode and enter your secret to produce HMAC-SHA-256 and the other keyed variants.
Yes. Select or drag in several files and each is hashed in turn with a per-file progress indicator, with results grouped by file.
Not cryptographically; they represent the same bytes. It matters only for string comparison, which is why the output format toggle exists — set it to match whatever value you are checking against.
This free hash generator turns any text or file into a fixed-length cryptographic hash using the browser's native Web Crypto API. Every calculation runs 100% client-side — your input never leaves your device, nothing is uploaded to a server, and no copy of your data is stored. That makes it safe for hashing sensitive strings, config secrets, or local files you would not want to transmit. You can compute several algorithms at once, switch between lowercase, uppercase, and Base64 output, and generate keyed HMAC digests when you need authentication rather than a plain checksum.
Not all hash algorithms are appropriate for the same job. The short version: MD5 and SHA-1 are cryptographically broken and must not be used where collision resistance matters; SHA-256 and SHA-512 are the current recommended defaults.
| Algorithm | Output size | Status | Use it for |
|---|---|---|---|
| MD5 | 128-bit | Broken — practical collision attacks since 2004 | Non-security checksums, legacy interop, ETags, cache keys |
| SHA-1 | 160-bit | Broken — SHAttered collision demonstrated in 2017 | Legacy git object IDs, deprecated TLS; avoid for anything new |
| SHA-256 | 256-bit | Recommended | File integrity, digital signatures, blockchain, SRI, certificates |
| SHA-384 | 384-bit | Recommended | Higher-assurance signatures, TLS 1.3 cipher suites |
| SHA-512 | 512-bit | Recommended | Large-file integrity, high-security signing; often faster than SHA-256 on 64-bit CPUs |
A collision is when two different inputs produce the same hash. For MD5 and SHA-1, attackers can now manufacture collisions on purpose, which is why they fail for signatures, certificates, or anything an adversary might tamper with. They are still fine as fast, non-adversarial checksums (deduplication, cache keys, verifying an accidental — not malicious — file change).
A raw MD5/SHA-256 digest of a password is not secure password storage, no matter which algorithm you pick — general-purpose hashes are designed to be fast, which is exactly what helps an attacker brute-force them. Password storage needs a deliberately slow, salted, memory-hard function such as bcrypt, scrypt, or Argon2. This tool intentionally does not offer those; use it for integrity and signing, not for hashing user passwords.
A plain hash answers "did this data change?" An HMAC (Hash-based Message Authentication Code) answers "did this data change and did it come from someone who knows the shared secret?" Enable HMAC mode and supply a secret key, and the tool produces a keyed digest (e.g. HMAC-SHA-256) that cannot be recomputed by anyone who does not hold the key. HMAC is what signs API requests (AWS Signature, webhook signatures), validates JWTs, and protects message integrity on the wire. For a plain checksum you do not need a key; for authentication you do.
A salt is a unique random value added to each input before hashing so that identical inputs produce different digests. Salting defeats precomputed rainbow tables and stops an attacker from seeing that two records share the same value. Salting is essential for password hashing (handled by bcrypt/scrypt/Argon2, which salt automatically) — but it is generally not wanted for file or content integrity, where you specifically need the same file to always produce the same hash so it can be compared across systems.
When you hash a file, the tool can take the resulting SHA-256 and check it against VirusTotal's malware-hash intelligence — letting you see whether a binary's fingerprint is already known-bad before you run it. Only the hash is sent for the lookup, never the file itself, so the client-side privacy guarantee holds. Commodity "hash a string" sites do not offer this; it is one of the page's real differentiators alongside the no-upload design.
Cryptographic hash functions are mathematical algorithms that convert input data of any size into a fixed-size string of characters, called a hash or digest. These functions are fundamental to modern cybersecurity and are used in:
These properties make hash functions essential security tools, but different algorithms provide varying levels of security and performance.
MD5 (128-bit)
SHA-1 (160-bit)
SHA-256 (256-bit)
SHA-512 (512-bit)
SHA-3 (256-bit)
bcrypt
scrypt
Never use general-purpose hash functions (MD5, SHA-256) for password storage - always use specialized password hashing algorithms with proper salting and work factors.
File hashing is a cornerstone of malware analysis and incident response. Security researchers and analysts use cryptographic hashes to:
Every malware sample has a unique hash fingerprint (unless it's polymorphic). When you hash a suspicious file, you can:
Several free services accept file hashes for malware lookup:
VirusTotal
MalwareBazaar (abuse.ch)
Hybrid Analysis
Use Multiple Algorithms
Understand Limitations
Combine with Behavior Analysis
Privacy Considerations
When investigating a suspicious file:
Hash-based detection remains an essential tool for security teams, but it must be combined with modern techniques like behavioral analysis and machine learning to catch evolving threats.
HMAC (Hash-based Message Authentication Code) combines a cryptographic hash function with a secret key to provide both data integrity and authentication.
Regular Hash
HMAC
API Authentication
Cookie Integrity
Message Authentication
HMAC is not suitable for password hashing - use bcrypt, scrypt, or Argon2 instead.
A cryptographic hash function is a mathematical algorithm that takes input data of any size and produces a fixed-size output (the hash or digest). Key properties include: (1) Deterministic - the same input always produces the same hash, (2) Fast computation - hashes can be generated quickly, (3) Pre-image resistance - it's computationally infeasible to reverse the hash to get the original input, (4) Small changes in input produce drastically different hashes (avalanche effect), and (5) Collision resistance - it's extremely difficult to find two different inputs that produce the same hash. These properties make hash functions essential for data integrity verification, password storage, digital signatures, and blockchain technology.
These hash functions differ in security and output size: MD5 (128-bit/32 hex chars) - Fast but cryptographically broken since 2004. Never use for security. Only acceptable for non-security checksums. SHA-1 (160-bit/40 hex chars) - Deprecated since 2017 due to collision attacks. Google demonstrated practical collisions. SHA-256 (256-bit/64 hex chars) - Part of SHA-2 family. Current industry standard. Used in Bitcoin, TLS certificates, and most modern applications. SHA-512 (512-bit/128 hex chars) - More secure than SHA-256 with larger output. Slower on 32-bit systems but faster on 64-bit systems. Use SHA-256 or SHA-512 for all security-sensitive applications. Avoid MD5 and SHA-1 unless required for legacy compatibility.
Absolutely not! Never use MD5 or SHA-1 for password hashing - this is a critical security mistake. Both are cryptographically broken and vulnerable to collision attacks and rainbow table lookups. For password hashing, you MUST use specialized password hashing algorithms designed to be slow and resistant to brute force attacks: bcrypt - Industry standard, adjustable work factor, resistant to GPU attacks. scrypt - Memory-hard function, resistant to hardware attacks. Argon2 - Modern winner of Password Hashing Competition, best overall security. PBKDF2-HMAC-SHA256 - Acceptable alternative, widely supported. These algorithms include automatic salting and configurable computational cost to slow down brute force attacks. General-purpose hash functions like MD5/SHA-1/SHA-256 are designed to be fast, which makes them terrible for passwords.
HMAC (Hash-based Message Authentication Code) combines a cryptographic hash function with a secret key to provide both data integrity and authentication. Unlike regular hashing, HMAC proves that: (1) The message hasn't been tampered with (integrity), and (2) The message came from someone who knows the secret key (authenticity). HMAC works by hashing the message twice with the key incorporated. Use cases include: API request signing (AWS, webhooks), JWT signatures, Cookie integrity verification, Message authentication in encrypted communications, and Challenge-response authentication. HMAC prevents tampering even if the attacker can see the message. Common implementations: HMAC-SHA256 (most popular), HMAC-SHA512 (more secure), HMAC-MD5 (legacy only). Both sender and receiver must share the same secret key.
Hash verification ensures files haven't been corrupted or tampered with during download: (1) Obtain the official hash - Software publishers provide SHA-256 hashes on their download pages, (2) Generate hash of your downloaded file - Use this tool or command-line tools (sha256sum, certutil), (3) Compare hashes - They must match exactly. Even one character difference means corruption or tampering. This protects against: Incomplete downloads, File corruption during transfer, Man-in-the-middle attacks, Malware injection, and Compromised download mirrors. Always download the hash from an official source (HTTPS, PGP-signed). SHA-256 is standard for file verification. Linux ISO images, Windows updates, and software downloads commonly provide SHA-256 checksums. Never trust a hash provided by the same untrusted source as the file.
Rainbow tables are pre-computed databases of password hashes used to crack passwords instantly. Instead of trying millions of password guesses, attackers look up the hash in the rainbow table to find the original password. Example: Hash "password123" with MD5 → lookup MD5 hash in rainbow table → instantly recover password. Salts prevent rainbow tables by adding unique random data to each password before hashing. With salts: (1) Each password has a different hash even if passwords are identical, (2) Attackers must compute hashes for every possible password+salt combination, (3) Rainbow tables become useless because the salt space is too large. Modern password hashing algorithms (bcrypt, scrypt, Argon2) include automatic salting. This is why you must use proper password hashing - never plain SHA-256 or MD5, which are vulnerable to rainbow table attacks even without salts.
No - cryptographic hash functions are designed to be one-way (pre-image resistant). You cannot mathematically reverse SHA-256 hash back to the original input. However, attackers can attempt: Brute force - Try all possible inputs until finding a match (extremely slow for strong passwords with proper hashing). Dictionary attacks - Try common passwords and phrases (very effective against weak passwords). Rainbow tables - Look up pre-computed hashes (defeated by salts). Collision attacks - Find any input that produces the same hash (doesn't recover original input, but can bypass integrity checks). This is why weak passwords are vulnerable even with strong hashing - attackers don't reverse the hash, they try common passwords until they find a match. Strong passwords (16+ characters, mixed types) make brute force attacks computationally infeasible even with fast hash functions.
SHA-3 is the latest cryptographic hash function standardized by NIST in 2015, designed as an alternative to SHA-2, not a replacement. Key differences: SHA-2 (SHA-256, SHA-512) - Based on Merkle-Damgård construction, battle-tested since 2001, industry standard, supported everywhere. SHA-3 - Based on Keccak sponge construction, different internal design, provides similar security level, less widespread adoption. Should you use SHA-3? Currently, stick with SHA-256/SHA-512 unless you have specific requirements. SHA-2 remains secure with no practical attacks. SHA-3 provides: Alternative construction if SHA-2 is compromised, Potential performance benefits in hardware, Different security properties for specialized applications. Use SHA-256 for general purposes. SHA-3 is future-proofing but offers no immediate security benefit over SHA-256. Both are quantum-resistant against current quantum computers.
To check if a file is potentially malicious using its hash: (1) Generate the file hash - Use this tool to calculate MD5, SHA-1, and SHA-256 hashes of the suspicious file. (2) Check threat intelligence databases - Use the provided links to VirusTotal (70+ antivirus engines), MalwareBazaar (malware sample database), or Hybrid Analysis (advanced analysis). (3) Interpret results - VirusTotal shows detection rates (e.g., "15/70" means 15 engines flagged it). Zero detections doesn't guarantee safety - new malware may not be detected yet. High detection rates indicate known malware. (4) Consider context - Legitimate software sometimes triggers false positives. Verify from official sources. Important: MD5 and SHA-1 are deprecated for security but still widely used in malware databases for historical compatibility. SHA-256 is the current standard. Always download threat intelligence from trusted sources (VirusTotal, abuse.ch, NIST). Never upload sensitive files to public services.
Malware hash databases are repositories that catalog known malicious files by their cryptographic hashes. How they work: (1) Sample collection - Security researchers and automated systems collect malware samples from attacks, honeypots, and user submissions. (2) Hash generation - Each malware sample is hashed (typically MD5, SHA-1, SHA-256). (3) Database storage - Hashes are stored with metadata: malware family, detection date, IOCs, behavior analysis. (4) Hash matching - Security tools compare file hashes against the database for instant identification. Major databases: VirusTotal - Community-driven, 70+ AV engines, public API. MalwareBazaar (abuse.ch) - Curated malware samples, free access. NIST NSRL - Known software hashes (helps identify legitimate files). Hybrid Analysis - Automated sandbox analysis with hash lookup. AlienVault OTX - Threat intelligence sharing platform. Hash-based detection is extremely fast but only catches known malware. New malware variants require behavior-based detection until hashes are cataloged.
File hashes are fundamental to malware analysis and threat intelligence for several reasons: Unique identification - Each malware sample has a unique hash fingerprint. Even tiny code changes produce completely different hashes (avalanche effect). Fast comparison - Checking a hash against millions of known malware signatures takes milliseconds. Comparing entire files would be impractical. Compact storage - A 64-character SHA-256 hash represents a multi-gigabyte file, enabling efficient threat intelligence sharing. Immutable evidence - Hashes provide cryptographic proof that samples are identical across different systems and researchers. Incident response - SOC teams can quickly identify compromised systems by scanning for known malware hashes. Threat hunting - Endpoint detection tools continuously compute file hashes and check against threat feeds. Challenges: Polymorphic malware - Malware that changes itself slightly with each infection produces different hashes. Packing/obfuscation - Attackers wrap malware in cryptographic layers to change hashes. Hash collision attacks - Theoretical but possible with deprecated algorithms like MD5. Modern malware analysis combines hash-based detection with behavior analysis, machine learning, and sandbox testing.
Yes, sophisticated attackers can evade hash-based detection through several techniques: Polymorphism - Malware changes its code with each infection while maintaining functionality. Each variant has a different hash. Examples: Encrypted payloads with variable keys, Code reordering and junk code insertion, Variable compression algorithms. Packing/Obfuscation - Wrapping malware in cryptographic layers: UPX/Themida/VMProtect packers change file structure, Custom encryption makes every sample unique, Anti-debugging and anti-VM techniques. Living-off-the-land - Using legitimate system tools (PowerShell, WMI, certutil) leaves no malicious files to hash. Fileless malware - Operates entirely in memory with no persistent files. Metamorphism - Complete code rewriting with each generation. Hash collision attacks - Crafting malicious files with same hash as legitimate files (only practical with MD5/SHA-1). Defense strategies: Behavior-based detection (sandboxing, heuristics), Machine learning anomaly detection, Endpoint detection and response (EDR), Network traffic analysis, Memory forensics, Fuzzy hashing (ssdeep) to catch similar but not identical files. Hash-based detection remains valuable for known threats, but modern security requires layered defenses.
You cannot convert an MD5 hash into a SHA-256 hash — a hash is a one-way function, so the original input is not recoverable from an MD5 digest, and there is no formula that maps one digest to another. What "md5 to sha256" actually means is re-hashing the original input with SHA-256. Paste your original text (or load the original file) into this tool, select SHA-256, and it computes the SHA-256 digest directly. If all you have is the MD5 value and not the source data, conversion is impossible. This matters for migrations: when moving a system off broken MD5, you must re-hash the real source data with SHA-256, not transform the stored MD5 values.
Yes. Select multiple algorithms in the algorithm picker — MD5, SHA-1, SHA-256, SHA-384, and SHA-512 — and the tool computes every selected digest from the same input in a single pass and displays them side by side. This is useful when a download page lists a checksum but does not say which algorithm it used, when you need both a legacy MD5 and a modern SHA-256 for compatibility, or when you are comparing algorithm output lengths. All of the digests are generated locally in your browser, so generating five hashes at once is just as private as generating one.
Switch to Text mode, type or paste your string into the input box, and choose an algorithm — the hash is generated instantly as you type, with no button to press and nothing sent to a server. The tool hashes the exact UTF-8 bytes of your text, so "hello" and "Hello" produce completely different digests. You can copy the result in lowercase, uppercase, or Base64. For a keyed text-to-hash conversion (for example, signing an API payload), enable HMAC mode and add your secret key. This is the fastest way to turn any string into an MD5, SHA-256, or SHA-512 value.
They are the same thing — "hash generator," "hash value generator," and "checksum generator" all describe a tool that takes input data and produces its hash (the hash value). This tool generates hash values for text and files using MD5, SHA-1, SHA-256, SHA-384, and SHA-512, plus keyed HMAC variants. The "value" simply refers to the fixed-length output string, such as the 64-character hex string a SHA-256 produces. If instead you have an existing hash and want to look up what file it belongs to (for example, checking a malware sample), that is a hash lookup, which is a different operation.