@ -54,12 +54,15 @@ 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 ) ;   
																 
																 
																	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  * =  lexSize ;   
																 
																 
																		maxKomb  * =  lexSize ;   
															
														 
														
													
														
															
																 
																 
																		i  =  rank ;   
																 
																 
																		i  =  rank ;   
															
														 
														
													
														
															
																 
																 
																		  
																 
																 
																		  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		MPI_Allreduce ( & success , & sumSuccess , 1 , MPI : : SHORT , MPI : : SUM , MPI_COMM_WORLD ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		if  ( sumSuccess  >  0 )  break ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																		while ( i < maxKomb ) { //generowanie różnych haseł
   
																 
																 
																		while ( i < maxKomb ) { //generowanie różnych haseł
   
															
														 
														
													
														
															
																 
																 
																			for ( int  j = 0 ; j < strSize ; j + + ) {   
																 
																 
																			for ( int  j = 0 ; j < strSize ; j + + ) {   
															
														 
														
													
														
															
																 
																 
																				str [ j ]  =  lex [ ( i  > >  ( offset * j ) )  &  mask ] ; 		  
																 
																 
																				str [ j ]  =  lex [ ( i  > >  ( offset * j ) )  &  mask ] ; 		  
															
														 
														
													
												
													
														
															
																
																	
																	
																	
																		
																			 
																		 
																	
																 
																@ -68,21 +71,20 @@ 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 ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																				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 : : 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.  
   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																			  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																			//niech więcej nie liczy po tej pętli while skoro znalazł 
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																			if  ( success  >  0 )    
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																				break ; 			   
															
														 
														
													
														
															
																 
																 
																			i + = size ;   
																 
																 
																			i + = size ;   
															
														 
														
													
														
															
																 
																 
																		}   
																 
																 
																		}   
															
														 
														
													
														
															
																 
																 
																	}   
																 
																 
																	}   
															
														 
														
													
														
															
																 
																 
																	  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																	stop :   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																	  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		  
															
														 
														
													
														
															
																 
																 
																	if  ( ! rank )  cout < < "   Czas =  " < < czasomierzacz . End ( ) < < "  ms " < < endl < < endl ;   
																 
																 
																	if  ( ! rank )  cout < < "   Czas =  " < < czasomierzacz . End ( ) < < "  ms " < < endl < < endl ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																	delete [ ]  result ;   
																 
																 
																	delete [ ]  result ;