refactoring
This commit is contained in:
@@ -13,8 +13,8 @@ void sha1(unsigned char* message,unsigned short messageLength,char *result){
|
||||
//////przygotowanie bloku
|
||||
|
||||
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];
|
||||
block[messageLength] = 0x80;//tuż po zakończeniu wiadomości dodaje bity 10000000
|
||||
messageLength =messageLength<<3; //rozmiar wiadomości w bitach
|
||||
|
||||
@@ -54,9 +54,10 @@ int main(int argc, char** argv) {
|
||||
str = new char[maxStrSize];
|
||||
|
||||
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
|
||||
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;
|
||||
|
||||
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
|
||||
|
||||
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: ";
|
||||
for(int l=0;l<strSize;l++) cout<<str[l];
|
||||
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.
|
||||
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
|
||||
if(sumSuccess) goto stop; //sumSuccess = 0 wiec ten proces się kończy.
|
||||
|
||||
i+=size;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user