Double SHA-256 File
Compute the Double SHA-256 (Bitcoin) hash of any file. Streamed in chunks.
Calculate the Double SHA-256 (SHA-256d) hash of a file. The Bitcoin hash. Streams the file in your browser. Read more Show less
What is Double SHA-256 file hashing?
Double SHA-256 is SHA-256 applied twice: sha256(sha256(file)). It is the hash used throughout Bitcoin for block headers, transaction IDs, and Merkle tree nodes. It produces the same 256-bit output size as single SHA-256.
Double SHA-256 is not more secure than single SHA-256 in any practical sense. Satoshi chose it in 2008 as a hedge against length-extension attacks, which SHA-256 already resists. The choice stuck, and double SHA-256 is now a Bitcoin convention that every crypto library and hardware wallet supports.
How to use
Drag, click, or paste a file. The tool streams the file in chunks and computes Double SHA-256 as it reads. It also accepts a URL; the server must allow cross-origin requests.
Byte order
Bitcoin uses double SHA-256 in two byte orders. On-chain transaction IDs and block hashes are displayed with their bytes reversed relative to the internal computation. This tool shows the raw double SHA-256 (internal order). If you are comparing against a block explorer, reverse the bytes of the output and compare again.
FAQ
Are files uploaded?
No. Everything runs locally in your browser. Files are streamed in chunks and never sent anywhere.
Why is my checksum different from the vendor's?
Confirm you have the exact same file. A re-download that includes any trailer or redirect can produce a different hash. Read the file in binary mode; text modes can alter line endings.
How large a file can I hash?
Any size your browser can open. Files are streamed in chunks, so memory use stays flat regardless of file size.
Can I verify a signed download with this?
It verifies the file matches the checksum you were given. The security of the verification depends on where the checksum came from: HTTPS from the vendor is far better than a checksum posted in a forum.
Command line equivalent
# Bitcoin Core
bitcoin-cli getblockhash 0
# Python
python3 -c 'import hashlib; d=open("myfile.bin","rb").read(); print(hashlib.sha256(hashlib.sha256(d).digest()).hexdigest())'
# OpenSSL (two invocations)
openssl dgst -sha256 -binary myfile.bin | openssl dgst -sha256 The server must allow cross-origin requests (CORS). If it doesn't, download the file and use the File tab.