Take the following sequence, for example:
hello!= string aSHA-256 of a:
ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b= bSHA-256 of b:
cb3f2ef7b1de2072e0f5a760622c43c73a6d49da55d0dbcb7cd00dd1933d5302= cSHA-256 of c:
9105672626045b178ecc277254e38a54bdbb2c9676f6d5882d9e574de1486523= d
My questions:
Can "c" be reversed to get "b" above? I read someone said it can be reversed but didn't give details. if it can be reversed, I want to be able to understand how.
I'm considering two methods of attacking iterated hashes.
Method #1: It will take input in above example, "b" and convert it to SHA-256 hash "c", it will further convert it in SHA-256 hash "d" and so on up to "n". It will, at each conversion, compare each hash to a list of hashes (set1 or set2 etc). If match is found, it will pause and in a text file save (chronologically) last 100 hash iterations it generated, automatically. At pause it will give option to further continue the instance or stop. While running, it will tell the current iteration no. In case of power cut (5min backup) it will pause and when power is restored it will be able to start from where it started. At the beginning, it will give an option to save all hashes (chronologically) in a text file (for dictionary), and ask for how much SSD space to use, after that space is used, it will stop saving but continue running.
Method #2: It will randomly generate a 64-character hexadecimal string and then generate a SHA-256 hash from this string, and then compare the hash with a list of hashes. It will loop until match is found. In the same instance it will not regenerate the string of which hash it has already been compared. It will also have every feature of software/method #1, like giving an option to save all strings and hashes in a text file on SSD, what to do in power cut, pause or stop, iteration no. etc.
In your opinion, which has better chance of cracking: running short (few hours) instance of either method and comparing against various sets of hashes one by one like set1, set2 etc., or running instance for longer (few days) on one set of hashes?
Breaking any hash from any set of hashes is the goal.