This question already has an answer here:
A individual file only has a single hash of any specific byte length. But an individual hash can represent a large number of different files.
Given a 256 byte hash, how long would it take to generate a file to match that hash?
In order to answer this question in a concrete manner, we will have to make some arbitrary decisions about available hardware. Answers can assume the use of:
- A single motherboard.
- The fastest x86 processor available today, with up to 16 of those processors on the same motherboard, iff (if and only if) such a motherboard actually exists.
- Up to 256GB of RAM, if supported.
- The fastest graphics cards available for the processor, with as many as the cards as the motherboard will support.
- Up to 256GB of RAM per graphics card, if supported.
- Any operating system.
- Any programming language or combination of programming languages.
Basically, let's assume a single realistic dedicated computer working on the task, not a distributed network.