LINUX.ORG.RU

мд5 это не шифр, а хэш - если хэш стойкий, то найти исходный текст из свертки нельзя (для мд5 научились пока только относительно быстро искать коллизии - пары исходных текстов с одинаковым значением хэша)

anonymous
()
Ответ на: комментарий от dima3351

>возможность того, что человек, задающий такие вопросы получит 5 звезд?

Возможность достоверного события.

record ★★★★★
()
Ответ на: комментарий от ManJak

> Ну если с его помощью зашифровать пароль. То вопрос по "шифрованию" =)

Вспоминается бородатый прикол про подбор брутфорсом архивов с софтом. :) Там что-то про Gimp с CMYK и новый линукс. :)

pentagon
()
Ответ на: комментарий от ManJak

Может, там конечно кластер из сотни-другой креев.

ManJak ★★★★★
() автор топика
Ответ на: комментарий от ManJak

ни пароли, ни что-либо другое с помошью хэшей НЕ ШИФРУЮТ

anonymous
()

>Есть допустим такой результат:
>echo "qqq" | md5sum
>b91c665f2e408e804de13960552b29ac  -
>
>А как средствами ОС из него восстановить:qqq

однако проще паренной репы:

$ echo "qqq" | md5sum
b91c665f2e408e804de13960552b29ac  -
$ echo !^
echo "qqq"
qqq

:)

P.S. в теории, при наличии какой-то информации об изначальном сообщении (дабы отметать коллизии) и при его не слишком большом размере, то ежели есть много-много-много вычислительной мощности и/или времени можно брутфорсом. но я бы не советовал. солнце говорят через пару миллиардов лет взорвется - можно и не успеть.

rip_someday
()

Да, сорри, это я попутал попутал =)

В Cisco MD5 только "enable secret" шифруют, а тут какой-то другой алгоритм =)


ManJak ★★★★★
() автор топика
Ответ на: комментарий от ManJak

>В Cisco MD5 только "enable secret" шифруют, а тут какой-то другой алгоритм =)

не только. еще в EIGRP аутентификацию например, и в куче других мест :))

dreamer ★★★★★
()
Ответ на: комментарий от dreamer

Все, помучился и написал прогу =)

#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>

main (int argc, char *argv[]) {

        int s, i, j, k, l, hash_len, passwd_len, xor_index;
        int XORString[]={0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53 , 0x55, 0x42};

        j = 0;
        for (i = 0; i < 2; i++) {
                l = argv[1][1-i] - 48;
                if ( isalpha (argv[1][1-i]) )
                        l = l - 7;

                j = j + l;
        }


        hash_len = strlen(argv[1]);
        passwd_len = (hash_len-2) / 2;
        xor_index = j;

        printf (" HASH: %s\n Hash len: %d\n Password len: %d\n XOR Index: %d\n", argv[1], hash_len, passwd_len, xor_index);

        for (i = 2; i < hash_len - 1; i=i+2) {
                j =  argv[1][i] - 48;
                k =  argv[1][i+1] - 48;

                        if ( isalpha (argv[1][i]) )
                                j= j - 7;
                        if ( isalpha (argv[1][i+1]) )
                                k = k - 7;

                l = (j * 16) + k;

                s = l ^ XORString[xor_index];
                xor_index++;

                printf ("%c", s);
        }
printf ("\n");
}


Вскрывает
password 7
на ура =)
И солнце не гаснет!

ManJak ★★★★★
() автор топика
Ответ на: комментарий от dreamer

Мне было интересно, как они так быстро ломают.
Все говорят, что кластер нужен, и солнце погаснет, а я нашел 
опубликованным быстрый алгоритм 
=)

ManJak ★★★★★
() автор топика
Ответ на: комментарий от dreamer

Ага, тоже самое вроде.
Только прочитать не получается, что-то кодировку не выставить.
Но, судя по формулам - оно.

ManJak ★★★★★
() автор топика
Ответ на: комментарий от mky

Причем, шифрование это можно усилить здорово, к.л. использовав пароль в переменной:

int XORString[]

И он станет невзламываемым в принципе.

ManJak ★★★★★
() автор топика
Ответ на: комментарий от mky

;)

Моя первая програмка зы где-то 11 лет.
Даже работает. =)

ЗЫ
Надож обмыть было.

ЗЫЫ
Думаю, что последняя, т.к. писать что-то времени нет ибо надо вспоминать
много слишком.

ManJak ★★★★★
() автор топика
Ответ на: комментарий от ManJak

>Думаю, что последняя

Не правильно вы думаете, разве это тост... Наоборот надо :)

mky ★★★★★
()
Ответ на: комментарий от ManJak

вижу, что сбегал ты удачно ))
>Моя первая програмка зы где-то 11 лет.

читал. долго думал. сново читал. ))
возникло несколько вариантов интерпретации:

1.тебе 11 лет (и уже пишешь на C,админишь циски и бегаешь за бухлом??!!)
2.где-то точно 11 лет..а где-то 12..
3.писал прогу 11 лет и тока щас выложил релиз?
..
а да, был еще вариент, что ты впервые за 11 лет написал прогу...но я его отбросил как слишком банальный..


ЗЫ:сорри за стеб, не удержался :((

dreamer ★★★★★
()
Ответ на: комментарий от dreamer

>ЗЫ:сорри за стеб, не удержался :((

Да ладно, бывает. Хотя в таком серьезном топике от стеба лучше удерживаться.

mky ★★★★★
()
Ответ на: комментарий от dreamer

=)

Нет, просто забросил давно, т.к. надобности небыло.

Вот, привел в красивый вид.
Кому надо - пользуйте, т.к. неизвестно, что там на чужих сайтах собирают.

$ cat password7crack.c
#include <stdio.h>
#include <string.h>

main (int argc, char *argv[]) {

        int XORString[]={0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53 , 0x55, 0x42};

        int i, hash_length, password_length, xor_index, temp_var, temp_var_1;
        int temp_var_3, pass_symbol;

        hash_length = strlen(argv[1]);
        password_length = (hash_length - 2) / 2;

        xor_index = xor_index_calc ( argv );

        printf ("\n Hash: %s \n Hash length: %d\n Password length: %d\n XOR index: %d\n\n Password:\"", argv[1], hash_length, password_length, xor_index);

        for (i = 2; i < hash_length - 1; i = i + 2) {

                temp_var = argv[1][i] - 48;
                temp_var_1 = argv[1][i+1] - 48;

                        if ( isalpha (argv[1][i]) )
                                temp_var = temp_var - 7;

                        if ( isalpha (argv[1][i+1]) )
                                temp_var_1 = temp_var_1 - 7;

                temp_var_3 = ( temp_var * 16 ) + temp_var_1;

                pass_symbol = temp_var_3 ^ XORString[xor_index];

                xor_index++;

                if ( xor_index > 25 )
                        xor_index = 0;

                printf ("%c", pass_symbol);

        }

        printf ("\"\n\n\n");

}

/* Function for Calculate XOR index */
int xor_index_calc (char *argument[]) {

        int i, j = 0, multiplyer = 10, temp_var;

        for (i = 0; i < 2; i++) {

                temp_var = argument[1][i] - 48;

                if ( isalpha ( argument[1][i] ) ) {

                        temp_var = temp_var - 7;

                }

                        j = j + temp_var * multiplyer;
                        multiplyer = multiplyer / 10;

        }

        return j;
}

ManJak ★★★★★
() автор топика

Плохая шутка? Сегодня первое апреля? Откуда у автора пять звезд? Кстати, что они означают? У него действительно все так хреново?

anonymous
()
Ответ на: комментарий от anonymous

>Плохая шутка?
Не совсем, утром прочитал и забавно было, хотя не бесполезно (за что 
благодарен ответившим).

>Сегодня первое апреля?
Нет.

>Откуда у автора пять звезд?
Хрен знает, проснулся и ФИГАСЕ!

>Кстати, что они означают?
Да ничего, могу поделиться.

>У него действительно все так хреново?
Нет, спасибо, но все нормально, жизнь прекрасна и ничего не надо в ней менять =)

ЗЫ
Но прогу написал реально первый раз с давних пор.
Что удивило, утром проверил - работает =)

ЗЫЫ
Кстати, а почему Вы считаете, что человек с 5* не может что-то не знать?

ManJak ★★★★★
() автор топика
Ответ на: комментарий от LowLevel

>он-лайн md5-крякеры работают по заранее сгенерённой базе коллизий.

Спасибо огромное, уже прочитал об этом.
Хотя, жаль ресурсов, которые они хоронят под это.

ManJak ★★★★★
() автор топика
Ответ на: комментарий от record

возможность получить qqq? Удивил. Нет никакой возможности получить именно qqq, в смысле, нет возможности гарантированно получить конкретно то, что было на входе хеша, хотя есть возможность подобрать для данного хеша входные данные. И существует некая вероятность, что вы наткнётесь н ате данные, которые ввели..

AndreyKl ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.