refactoring
This commit is contained in:
@@ -13,8 +13,8 @@ void sha1(unsigned char* message,unsigned short messageLength,char *result){
|
|||||||
//////przygotowanie bloku
|
//////przygotowanie bloku
|
||||||
|
|
||||||
int size = 64; //rozmiar jednego bloku musi być 512bit
|
int size = 64; //rozmiar jednego bloku musi być 512bit
|
||||||
unsigned char block[size] = {0};
|
unsigned char block[size];// = {0};
|
||||||
|
memset(block, 0, size * sizeof(unsigned char));
|
||||||
for(int i = 0;i<messageLength;i++)block[i] = message[i];
|
for(int i = 0;i<messageLength;i++)block[i] = message[i];
|
||||||
block[messageLength] = 0x80;//tuż po zakończeniu wiadomości dodaje bity 10000000
|
block[messageLength] = 0x80;//tuż po zakończeniu wiadomości dodaje bity 10000000
|
||||||
messageLength =messageLength<<3; //rozmiar wiadomości w bitach
|
messageLength =messageLength<<3; //rozmiar wiadomości w bitach
|
||||||
|
|||||||
@@ -54,9 +54,10 @@ int main(int argc, char** argv) {
|
|||||||
str = new char[maxStrSize];
|
str = new char[maxStrSize];
|
||||||
|
|
||||||
if (!rank) czasomierzacz.Begin();
|
if (!rank) czasomierzacz.Begin();
|
||||||
|
success = 0;
|
||||||
|
maxKomb = pow(lexSize,minStrSize-1);
|
||||||
for(strSize = minStrSize;strSize<=maxStrSize;strSize++){ //petla generujaca jaka ma być długość hasła z którego bedzie generowany hash
|
for(strSize = minStrSize;strSize<=maxStrSize;strSize++){ //petla generujaca jaka ma być długość hasła z którego bedzie generowany hash
|
||||||
maxKomb = pow(lexSize,strSize);//tak, wiem że potega ale w całym programie wykona się maksymalnie tyle razy: ilość porcesów *(maxStrSize - minStrSize)
|
maxKomb *= lexSize;
|
||||||
i = rank;
|
i = rank;
|
||||||
|
|
||||||
while(i<maxKomb){//generowanie różnych haseł
|
while(i<maxKomb){//generowanie różnych haseł
|
||||||
@@ -67,14 +68,13 @@ int main(int argc, char** argv) {
|
|||||||
sha1((unsigned char*)str,strSize,result); //obliczanie hash z wygenerowanego wcześniej hasła
|
sha1((unsigned char*)str,strSize,result); //obliczanie hash z wygenerowanego wcześniej hasła
|
||||||
|
|
||||||
if(strcasecmp(argv[1],result) == 0){ //znalazłem odpowiedz 109
|
if(strcasecmp(argv[1],result) == 0){ //znalazłem odpowiedz 109
|
||||||
success = 0; //ustwaiem zmienna success na 0
|
success = 1; //ustwaiem zmienna success na 0
|
||||||
cout<<endl<<" Złamałem hasha: ";
|
cout<<endl<<" Złamałem hasha: ";
|
||||||
for(int l=0;l<strSize;l++) cout<<str[l];
|
for(int l=0;l<strSize;l++) cout<<str[l];
|
||||||
cout<<endl;
|
cout<<endl;
|
||||||
}
|
}
|
||||||
|
MPI_Allreduce(&success,&sumSuccess,1,MPI::SHORT,MPI::SUM,MPI_COMM_WORLD); //robię bitowe AND na zmiennej 'success'. wyjdzie 0 gdy 'success' z któregokolwiek procesu jest równy 0
|
||||||
MPI_Allreduce(&success,&sumSuccess,1,MPI::SHORT,MPI::BAND,MPI_COMM_WORLD); //robię bitowe AND na zmiennej 'success'. wyjdzie 0 gdy 'success' z któregokolwiek procesu jest równy 0
|
if(sumSuccess) goto stop; //sumSuccess = 0 wiec ten proces się kończy.
|
||||||
if(!sumSuccess) goto stop; //sumSuccess = 0 wiec ten proces się kończy.
|
|
||||||
|
|
||||||
i+=size;
|
i+=size;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user