-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.cpp
93 lines (75 loc) · 2.56 KB
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include "hashfunction.h"
using namespace std;
int main()
{
hasher hashobj;
cout << "iBrute v0.1" << endl;
cout << "Which hashtype do you want to brute?" << endl;
bool check_algo;
string algotype;
while ( check_algo == false ){
cout << "(MD5, SHA128, SHA256, SHA512)> ";
getline(cin, algotype);
if ( algotype == "MD5" || algotype == "SHA128" || algotype == "SHA256" || algotype == "SHA512" ){
check_algo = true;
}
}
cout << "Enter hash> ";
string hash2brute;
getline(cin, hash2brute);
cout << "Algo...:\t" << algotype << endl;
cout << "Hash...:\t" << hash2brute << endl;
cout << "Is that correct (Y/N)> ";
string correct;
cin >> correct;
if ( correct == "Y" || correct == "y" ){
//begin with the brute
cout << "Where is the dictionary?: ";
string pathtodic;
cin >> pathtodic;
const char* pathdic = pathtodic.data();
ifstream dict( pathdic );
string content;
string hasherdalesher;
while ( dict.good() ){
dict >> content;
if ( algotype == "MD5" ){
hasherdalesher = hashobj.md5( content );
if ( hasherdalesher == hash2brute ){
cout << "Match found! The word is: " << content << endl;
return 0;
}
}
else if ( algotype == "SHA128" ){
hasherdalesher = hashobj.sha128( content );
if ( hasherdalesher == hash2brute ){
cout << "Match found! The word is: " << content << endl;
return 0;
}
}
else if ( algotype == "SHA256" ){
hasherdalesher = hashobj.sha256( content );
if ( hasherdalesher == hash2brute ){
cout << "Match found! The word is: " << content << endl;
return 0;
}
}
else if ( algotype == "SHA512" ){
hasherdalesher = hashobj.sha512( content );
if ( hasherdalesher == hash2brute ){
cout << "Match found! The word is: " << content << endl;
return 0;
}
}
}
cerr << "NO MATCH FOUND!" << endl;
return -1;
}
else if ( correct == "N" || correct == "n" ){
return -1;
}
}