Программирование - вопрос/ответ



         

Программирование - часть 25


 *(outptr++) = six2pr[((bufin[1] << 2) & 074) | ((bufin[2] >> 6) & 03)];/*c3*/
 *(outptr++) = six2pr[bufin[2] & 077]; /* c4 */

       bufin += 3;
    }

 /* If nbytes was not a multiple of 3, then we have encoded too
     * many characters. Adjust appropriately.
     */
    if(i == nbytes+1) {
  /* There were only 2 bytes in that last group */
       outptr[-1] = '=';
    } else if(i == nbytes+2) {
  /* There was only 1 byte in that last group */
       outptr[-1] = '=';
       outptr[-2] = '=';
    }

    *outptr = '\0';

    return TRUE;
}

Ivan Rozhuk

Дополнить этот ответ | Задать свой вопрос

Вопрос

Что-то я свосем запутался:
Говорится что из генерируемого ХР хеша невозможно восстановить пароль. НО! при всем при этом говорится также что два разных пароля НЕ могут иметь одинаковые хеши. Помоему это брехня… Это как параллельные прямые — если не пересекаются то параллельные, если пересекаются — увы… Исходя из этого два вывода: либо можно восстановить из хеша, либо могут быть два одинаковых хеша.
Или я в чем-то не прав?

Ответ

Почитай про один из алгоритмов хэша rfc1321, тогда много етебе станет ясно:

1. Хэш может повторятся но вероятность этого очень мала

2. Зная хэш можно восстановить исходную комбинацию символов, но данная операция черезвычайно трудоемка тк как тебе придется брутфорсом перебирать все варианты исходных символов, либо построить квантовый компьютер. Некоторые ученые утверждают что он сможет призводить обратные вчесления путем обратного отражения или обратного перобразования, вообщем в нем хеширование вроде как обратимо будет, правда тогда в мире наступет небольшой хаос из за того что пароли вновь будет легко узнать обычным перехватом, но пока это только предположения умных людей.



Содержание  Назад  Вперед