Coding-Enthusiast / FinderOuter

Easy to use bitcoin recovery tool to fix damaged private key, mini-private key, address, BIP38 encrypted key, mnemonic (seed phrase), BIP-32 derivation path, Armory backups, recover passwords and more
MIT License
296 stars 113 forks source link

Add the case that location of missing characters is not known. #1

Closed Coding-Enthusiast closed 3 years ago

Coding-Enthusiast commented 4 years ago

Base-58 service only supports the case when the user knows the location of missing characters.
A new option is needed for when that location is not known. But the option has to work with any number of missing characters without needing to hard-code each case individually.

Coding-Enthusiast commented 4 years ago

https://github.com/Coding-Enthusiast/FinderOuter/commit/73e8596993cdf68be49a4f20ba52afa2b1c1a5b1 solves this for a special case (compressed key missing 3 chars).
We can add more code for a couple more small cases (3 missing is already 4 billion keys to check).

Coding-Enthusiast commented 3 years ago

305a5358fc2acc6ee4197759b234111c79519e5b solves this for special case (both compressed and uncompressed keys missing 1 char).

Coding-Enthusiast commented 3 years ago

8d13be8ed06916d39d071c983ce39501362cfcf0 solves this for special case (both compressed and uncompressed keys missing 2 chars) which closes this issue.

We can add the case for >= 4 chars missing but the number of keys to check grows fast and the colde also becomes very slow 2.9k -> 4.2 mil -> 4.0 bil -> 2.8 tril -> 1.5 quad.
I prefer postponing any additional work on this to after code including SHA got more optimized (eg. using SIMD) and GPU support is added.