|
Answer» Decided to share a test project which is part of the crypt project. I was curious if there was a SEED value that would spit out the same output as the input, since its possible but not very probable for a shuffle to be shuffled back to its original form. If the output matches the original input the program will stop at that value in which a match was found. So far no matches up to 100 Billion seed keys. I will probaby also have no matches as well to 1 Trillion. I am not going to GO beyond 1 Trillion seed values. After that its just a waste of electric.
Crunching the string compares after randomization of one of the strings using my AMD FX8350 4000Mhz system and I split the programs span into 8 groups so that the single threaded execution would each be assigned to 1 of the 8 cores.
Below is the info I got for how long it took to process the keys. The Keys are long long integer seed values.
Crunch Keys for 1 to 10 Billion Combinations *Took about 2 hours 28 minutes to COMPLETE on AMD FX8350 4000Mhz with each core solving 1.25 Billion Problems.
Started on Tue 01/26/2016 at 14:24:10.39 Ended on Tue 01/26/2016 at 16:52:05.71
Crunch Keys for 10 to 100 Billion Combinations *Took about 17 hours 35 minutes to complete on AMD FX8350 4000Mhz with each core solving 12.5 Billion Problems
Started on Tue 01/26/2016 at 15:12:55.56 Ended on Wed 01/27/2016 at 8:47:31.22
Crunch Keys for 100 Billion to 1 Trillion Combinations
*estimation ... will take 7.3 days to complete on AMD FX8350 4000Mhz with each core solving 125 Billion Problems. Still running until next week this time at full bore 100% CPU use and nothing else running to waste CPU cycles offline.
Here is the code I have running.
Code: [Select]#include <iostream> #include <string>
int delay; long long int counter1=875000000000LL; // Add LL beyond 9 digits long long int endcount=999999999999LL; // while loop end counter long long int match=0; long long int nomatch=0; long long int seed1=0;
int main () {
std::string str="[emailprotected]#$%^&*()_-+=?<>:\\/~.,;"; std::string str2="[emailprotected]#$%^&*()_-+=?<>:\\/~.,;"; system("@echo. Started on %date% at %time%>>Log8R3.txt"); system("color f0"); std::cout<<"Running Please Wait...\n"; while(counter1<=endcount){ seed1=counter1; srand(seed1); random_shuffle(str.begin(), str.end()); // Shuffle the string
if (str.compare(str2) != 0){ //std::cout <<"counter= "<<counter1<<" "<< str << " is not " << str2 << '\n'; //std::cout<<"counter = "<<counter1<<" \n"; nomatch++; //std::cin>>delay; } else{ std::cout<<"counter= "<<counter1<<" - Match Found\n"; match++; std::cin>>delay; } counter1++; } std::cout<<"Match = "<<match<<"\n"; std::cout<<"No Match = "<<nomatch<<"\n"; system("@echo. Ended on %date% at %time%>>Log8R3.txt"); std::cin>>delay; return 0; }
|