I probly just don't know what overwrite code is. I thought it was an external code written to reproduce the effects without needing to know the ligit phrase to name the tiara. If it is that than you would have to add it as if you were adding a new mod to the server.
I'm using an override to track what it does and runs it through when I type in the name I overrided in order to got the process the game goes through in order to get / verify the name
I did that, just print out to the log file whenever you run through each step, you get a bunch of useless junk though, which comes to this, there's a CHANCE that you actually got the right name and it isn't correct, if you're just bruteforcing based off the SHA-256, you need to phyically use a 49 character string, that has a large mix of ACSII characters, so gl, with that
achievement.botania:desuGun.desc=ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN # ^ Don't localize in the localizations file
Different easter egg then couldn't help but notice asada-San asada-san is 19 characters so it got me hopeful, me I'll keep trying my way but there's allot of crap to sort through
XD but how has it been confirmed is what I want to know, that would suggest someone knows and is being stingy with the answer, making us work geez
If they find out that it's available somewhere on the internet (not necessarily here) maybe they will change it. think they would do that? of coarse it would mean that some people who "earned" it would have to find it again (depending on the method used, and if Vazkii changes the encryption)
Google seems to imply this is very difficult (time consuming) to crack. Interesting though. If it is about neo, what is to say it is even a quote, it could be some paraphrased line, although I guess it is made to actually be solvable with a lot of work.
Would it not be logical to try to break the old hash from before April 2015, since the correct string may not have been changed? Wow such salt much security very wow. · Vazkii/Botania@e6464bb · GitHub
Pity, that would've made life easier. Are we sure Vazkii isn't lying to us about the length, though? She is obviously a little trolly
if i wanted to try that many hashes i'd have a file the size of 10 gigs on my computer, not going to be able to purge anything that size so i won't be able to test[DOUBLEPOST=1462567725,1462491188][/DOUBLEPOST]Ok, so i have a program that outputs exactly what we want, strings that pass the test, for the original one only though, so won't help us, but here Code: using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; namespace Unhash { static class Program { const int minChar = 32; const int maxChar = 122; // array of possibles static char[] charChoice = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ".ToCharArray(); // limit maxStrLength to make sure that max hash value does not exceed long.MaxValue (2^63 - 1) const int maxStrLength = 19; const int minStrLength = 1; static long[] minHashValues; static long[] maxHashValues; static Program() { minHashValues = new long[maxStrLength + 1]; for (int strLength = 0; strLength <= maxStrLength; strLength++) minHashValues[strLength] = Pow(31, strLength) / (31 - 1) * minChar; maxHashValues = new long[maxStrLength + 1]; for (int strLength = 0; strLength <= maxStrLength; strLength++) maxHashValues[strLength] = Pow(31, strLength) / (31 - 1) * maxChar; } static void GuessHash(int hash, int maxLength = 256, int minLength = 1) { Stopwatch sw = Stopwatch.StartNew(); var timeLimit = new TimeSpan(0, 15, 0); if (maxLength > maxStrLength) maxLength = maxStrLength; if(minLength < minStrLength) minLength = minStrLength; long currentHash = (uint)hash; long step = 1L << 32; const int bufferSize = 32 * 1024; using (var writer = new StreamWriter("output.txt", false, new UTF8Encoding(false), bufferSize)) { for (int strLength = minLength; strLength <= maxLength; strLength++) { Console.WriteLine(strLength.ToString() + " current length"); long maxHash = maxHashValues[strLength]; if (currentHash > maxHash) continue; long minHash = minHashValues[strLength]; while (currentHash < minHash) currentHash += step; while ((currentHash <= maxHash) && (sw.Elapsed < timeLimit)) { GuessLongHash(writer, currentHash, new char[strLength], strLength - 1); currentHash += step; } } } } static void GuessLongHash(StreamWriter writer, long hash, char[] chars, int charPos) { if (hash <= maxChar) { char ch = (char)hash; if(hash == minChar || hash.IsWithin(48, 57) || hash.IsWithin(65, 90) || hash.IsWithin(96, 122)) { chars[charPos] = ch; writer.WriteLine(new string(chars)); } return; } char c = (char)(hash % 31); while (c < minChar) c += (char)31; while (c <= maxChar) { chars[charPos] = c; GuessLongHash(writer, (hash - c) / 31, chars, charPos - 1); c += (char)31; } } static long Pow(int value, int exponent) { long result = 1; for (int i = 0; i < exponent; i++) result *= value; return result; } static void Main(string[] args) { const int hash = 0x7867EB0B; GuessHash(hash); Console.WriteLine("Done"); Console.ReadKey(); } static bool IsWithin(this long value, long minimum, long maximum) { return value >= minimum && value <= maximum; } } } here's a c# program that i shamelessly stole from a stackoverflow thread and modified for this purpose