So this is a two-part question:

1. Are there any hashing functions that guarantee that for any combination of the same length, they generate a **unique** hash? As I remember - most are that way, but I just need to confirm this.
2. Based on the 1st question - so, given a file hash and a length - is it then theoretically possible to 'brute-force' all byte permutations of that same length until the same hash is generated - ie. the original file has been recreated?

**PS.** I am aware that this will take ages (if theoretically possible), but I think it would be feasible for small files (sizes < 1KB)