Guys, are you sure you're doing this right? "Nineteen characters." Neo is one character. Trinity is a second. Morpheus is a third... Think of it that way. Who are nineteen characters related to Neo? I know that's not what "Character" usually means when it comes to passwords, but who knows!
I'm inclined to agree that we're taking this too literally. Not a single 19 character word in the Lexicon either ... however it's hard to misconstrue "It's 19 characters long"
Well, have you tried "Matrix digital rain" yet? That's 19 characters long, and Neo taps into the "rain" to modify how the world works, granting him his powers. Can't test it myself because I suck at botania.
or just run the code i showed you.... and it will do the same thing[DOUBLEPOST=1465439020][/DOUBLEPOST]Also the answer is no, it's not that
there is ONE possibility, there is ONE, if you're using the method vazkii gave (and you should) you should ONLY get one possibility
Update on this, made a better program for cracking it, it uses IKVM, it's in C# Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using java.security; using System.Threading.Tasks; namespace Cracking { class Program { static char[] charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ".ToCharArray(); static void Main(string[] args) { Task h = Task.Run(async () => { await TestThread(); }); Task a = Task.Run(async () => { await TestThread(); }); Task b = Task.Run(async () => { await TestThread(); }); Task d = Task.Run(async () => { await TestThread(); }); h.Wait(); a.Dispose(); b.Dispose(); h.Dispose(); d.Dispose(); } static async Task TestThread() { Random rand = new Random(); char[] ch = new char[19]; for (int i = 0; i < ch.Length; i++) ch[i] = 'a'; string a = "16E1BDFD1D6AE1A954C9C5E1B2D9099780F3E1724541F1F2F77310B769CFFBAC"; while(true) { string b = await hash(new string(ch)); if(b.Equals(a)) { Console.WriteLine("FOUND IT!!!!!!!!!!!!"); Console.WriteLine(new string(ch)); Console.ReadLine(); } else ch[rand.Next(18)] = charset[rand.Next(charset.Length - 1)]; } } private static async Task<string> hash(string str) { if(str != null) try { MessageDigest md = MessageDigest.getInstance("SHA-256"); return new javax.xml.bind.annotation.adapters.HexBinaryAdapter().marshal(md.digest(Encoding.UTF8.GetBytes(await salt(str)))); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } private static async Task<string> salt(string str) { str = str += "wowsuchsaltmuchsecurityverywow"; SecureRandom random = new SecureRandom(Encoding.ASCII.GetBytes(str)); int l = str.Length; int steps = random.nextInt(l); char[] chrs = str.ToCharArray(); await Task.Run(() => { for (int i = 0; i < steps; i++) { int indA = random.nextInt(l); int indB; do { indB = random.nextInt(l); } while (indB == indA); char c = (char)(chrs[indA] ^ chrs[indB]); chrs[indA] = c; } }); return new string(chrs); } } }
What'll happen is that one thread will run to completion and the rest will wait die immediately if you continue, so there's 4 threads searching randomly for this name
Noticed this from the long list of threads being exited. I applaud the effort in making this code btw
It was nothing, it's random, so no determinate length of time will tell when it gets it, and it took like 6 minutes of coding
it's well known that I haven't even taken a CS class .-. it's really just a simple bruteforce program, nothing complex as the SHA family has no known vulnerabilities