Я занимаюсь программированием, и я схожу с ума с одной из проблем. В этом случае мне нужно вычислить MD5 строки. Строка приведена в следующем виде:Хэширование одного и того же символа несколько раз
n[c]
: Где n
- номер и c
- персонаж. Например: b3[a2[c]]
=>baccaccacc
Все шло нормально, пока я не получил следующую строку:
1[2[3[4[5[6[7[8[9[10[11[12[13[a]]]]]]]]]]]]]
Это строки превращается в строку с 6227020800 a
«с. Эта строка больше 6 ГБ, поэтому практически невозможно вычислить ее в практическое время. Итак, вот мой вопрос:
Есть ли какие-либо свойства MD5, которые я могу использовать здесь?
Я знаю, что должна быть форма, чтобы сделать это за короткое время, и я подозреваю, что это должно быть связано с тем фактом, что вся строка имеет тот же символ, который повторяется несколько раз.
Это, вероятно, будет простым, обратным поиском и найти первый возникающий '[', замените символ после ('a') на число infront' ['(' 13', поэтому '13 * 'a ''), то боль в этой строке в переменной, посмотрите на следующий' '' 'и возьмите' mystoredstring * num' и т. д. – Torxed
@Torxed Этот вопрос касается не создания реальной строки из ее компактного представления (которое было бы буква 6227020800 времени, как уже указывал ОП), но и об эффективном вычислении хэша MD5 такой большой строки. – Carsten
Я могу рассчитать его примерно за 14 секунд времени процессора на моей машине. Как вы определяете «практическое время»? – Aya